login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Opvragen databank + logicafout

Offline Givike - 01/05/2008 20:32 (laatste wijziging 01/05/2008 23:21)
Avatar van GivikeNieuw lid Ik heb een scriptje geschreven die allemaal links ophaalt uit een databank en deze in de juiste categorie weergeeft. Alleen werkt het niet... Er is geen syntaxfout maar wel 2 andere fouten.

Eerste:

Alleen de links zonder een categorieID worden weergegevn (e.g. categorieID = 0)

Tweede:

Ze komen bij elke categorie terecht. Wat niet zou mogen want er is maar 1 ID / link.

Syntax:

  1. <?php
  2.  
  3. //------- Begin Categorizering
  4. $categorizering = mysql_query('SELECT `tblcategorie` . `categorieid` , `tblcategorie` . `categorienaam` '
  5. . ' FROM tblcategorie '
  6. . ' LIMIT 0, 30 ') or die(mysql_error());
  7. while ($fetchcategorie = mysql_fetch_array($categorizering))
  8. {
  9. $categorienaam = $fetchcategorie['categorienaam'];
  10. $categorieid = $fetchcategorie['categorieid'];
  11.  
  12. echo "<p><b>$categorienaam</b></p>";
  13. //------- Einde Categorizering
  14.  
  15. //------- Begin oproepen links
  16. $navigatie = mysql_query('SELECT `tblrecept` . `receptid` , `receptnaam` '
  17. . ' FROM tblrecept '
  18. . ' WHERE ( categorieid = 1 ) ' // vermoeding fout
  19. . ' LIMIT 0, 30 ') or die(mysql_error());
  20.  
  21. while ($fetchlinks = mysql_fetch_array($navigatie))
  22. {
  23. $receptID = $fetchlinks['receptid'];
  24. $receptnaam = $fetchlinks['receptnaam'];
  25.  
  26. echo "<a href='recept.php?id=$receptID'>$receptnaam</a><br />";
  27. }
  28. //------- Einde oproepen links
  29. }
  30. ?>


Weetjes:
De SQL queries komen rechtstreeks uit phpmyadmin & werken.

Het doorgeven van categorie ID in de 2e query werkt. Want als ik de ID verander in 1 dan krijg ik de juiste links maar nog steeds bij alle categorien.

De receptID oproepen werkt perfect.

Een link met dit systeem op server.
http://ims0708d...igatie.php

Indien ik niet duidelijk ben, gelieve het te vragen.

4 antwoorden

Gesponsorde links
Offline Rik - 01/05/2008 20:45 (laatste wijziging 01/05/2008 20:45)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik vind het toch raar dat je query werkt, want de manier hoe je twee kolommen aan elkaar plakt dmv een . in sql kan volgens mij niet. Dat zou met de functie CONCAT() moeten.

Waar jij vermoed dat de fout zit, waarom heb je daar een 1 in je where staan en niet de inhoud van $categorieid?

Als je er verder zeker van bent dat je script goed is, dan kan je ook eens kijken of je tabel wel goed staat.  
Offline Martijn - 01/05/2008 21:19 (laatste wijziging 01/05/2008 21:22)
Avatar van Martijn Crew PHP dr worden niet 2 kolommen aan elkaar geplakt voor de punt is tabelnaam, na de punt is de kolom naam 

naja, dat 1 zal er wel staan als test, en zover ik het zo snel zie, klopt dat ook

edit: haal het deel voor de punt, en de punt, is weg uit je select?
  1. $categorizering = mysql_query('SELECT categorieid, categorienaam FROM tblcategorie LIMIT 0, 30') or die(mysql_error());

zou het ook moeten doen, en als je mazzel hebt je probleem oplossen
Offline Rik - 02/05/2008 12:05
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
DeviourSoul schreef:
dr worden niet 2 kolommen aan elkaar geplakt voor de punt is tabelnaam, na de punt is de kolom naam 
Ah, kan dat ook! Ik dacht altijd dat dat zo moest:
  1. `tblcategorie.categorieid`
Offline Givike - 03/05/2008 11:55
Avatar van Givike Nieuw lid Alle SQL queries al zet ik die punt daar of niet.

De $categorieid in de query was een test om te zien of die de waarde wel meekreeg. Wat dus wel het geval is. Ik ben nog geen stap verder al is die CONCAT() wel interessant. Ben de mogelijkheden aan het uitzoeken maar vind er bitter weinig van online. Zeker als het op voorbeelden aankomt.


Enige hulp of andere suggesties zijn welkom!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.172s