Wat is hier fout aan:


$letter = "a";

$lijst_select = "SELECT * FROM kot_msnlijst ORDER BY voornaam ASC WHERE beginletter = ".$letter;
$lijst_query = mysql_query($lijst_select);

   while($lijst = mysql_fetch_object($lijst_query)) 
   { 
echo "<tr><td>$lijst->voornaam</td><td>$lijst->achternaam</td>";
   } 


Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\server\Apache2\htdocs\kottenpark\msnlijst\msnlijst.php on line 75
De WHERE moet voor de ORDER BY
DUS
"SELECT * FROM kot_msnlijst
WHERE beginletter = ".$letter."
ORDER BY voornaam ASC";

P.s.
Probeer voortaan een sql foutmelding te creëren. Dat doe je door mysql_error
Dus
$lijst_query = mysql_query($lijst_select) or die(mysql_error());

Dan krijg je een veel duidelijkere error.
Er moeten ook nog quotes bij:

$lijst_select = "SELECT * FROM kot_msnlijst WHERE `beginletter` = '".$letter."' ORDER BY voornaam ASC";
Even een andere vraagje, waarom een aparte kolom beginletter?
Met bijvoorbeeld LIKE kan je ook zoeken op beginletter.
Voor andere doeleinden kan je met php ook alleen de eerste letter pakken.
omdat ik die code nog niet wist :P
en ik geen zin had om alle regels naar te gaan en dan te kijken wat de 1e letter was; ik vond het makkelijker om bij het toevoegen 1 a 2 regels te verspillen aan kolom
aka schreef op 02.05.2006 16:19
omdat ik die code nog niet wist :P
en ik geen zin had om alle regels naar te gaan en dan te kijken wat de 1e letter was; ik vond het makkelijker om bij het toevoegen 1 a 2 regels te verspillen aan kolom

En nu loop je dus het risico op datacorruptie... En of dat nu zo veel handiger is, ik waag het te betwijfelen.

Je kunt met SQL heel simpel een bepaalde letter uit een record gaan vergelijken, daar zijn vele functies voor. Zie hiervoor de handleiding, hoofdstuk 12.nogwat. Met LIKE kan het ook, maar er zijn meerdere oplossingen/functies.

Reageren