17. april 2007 - 22:56Der er
7 kommentarer og 1 løsning
Fejl i mysql_fetch_array
Hej eksperter
Jeg sidder i en så simpel situation, som at skulle hive noget ret simpel data ud fra en database ved hjælp af en while-løkke... Jeg har oprettet forbindelse til min mysql-database, hvilket også er fint, men i mit mysql_fetch_array melder den fejl. Fejlen ser ud som følger:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/motd.php on line 20.
Linje 20 ser ud som føler: while($pro_row = mysql_fetch_array($pro_query)) {
Koden som befinder sig ovenover ser således ud: include("inc_connect.php");
$pro_query = mysql_query("Select * from $Tproducts where ((stooffdeactive=0) or (stooffdeactive=1 and stonumber>0)) and (status=1) and(offerfrom<=".$curdate." && offerto>=".$curdate.") order by sorting, name"); "HER ER WHILE LØKKEN"
Jeg håber I forstår mit problem, og at I kan være behjælpelige endnu en gang. På forhånd tak.
Det er din query den er gal med ... forsøg med denne:
$pro_query = mysql_query("Select * from $Tproducts where ((stooffdeactive=0) or (stooffdeactive=1 and stonumber>0)) and (status=1) and (offerfrom<=$curdate && offerto>=$curdate) order by sorting, name");
Evt.:
$pro_query = mysql_query("Select * from ".$Tproducts." where ((stooffdeactive=0) or (stooffdeactive=1 and stonumber>0)) and (status=1) and (offerfrom<=".$curdate." and offerto>=".$curdate.") order by sorting, name");
Og for at gøre det mere overskueligt (synes jeg) kan du "evt. evt." bruge:
$pro_query = mysql_query("SELECT * FROM ".$Tproducts." WHERE ((stooffdeactive=0) OR (stooffdeactive=1 AND stonumber>0)) AND (status=1) AND (offerfrom<=".$curdate." AND offerto>=".$curdate.") ORDER BY sorting, name");
Jeg ville overveje hvad $Tproducts -variablen indeholder, da det med stor sandsynlighed kan være den der er noget galt med. Det er den eneste jeg sådan lige kan se skulle være kritisk.
Der er ikke nogen ændring ved brugen af ovenstående eksempler, desværre... Jeg har forsøgt mig ved at udskifte variablen og der sker ej heller nogen forbedring her.
Jeg har indsat en mysql_error, og fejlen kommer nu med følgende beskrivelse:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND offerto>=) ORDER BY sorting, name' at line 1
Jeg har fundet fejlen. $curdate var defineret inde i whilen i stedet for inden... Det virker nu. Smid et svar, dkfire, og så skal du få dine point :)) Jeg takker for jer to, som gad ofre tiden på mit lousy problem :)
Jamen det var jo meget godt du fandt den fejl :-) Men igen, du burde istedet bruge NOW(). Men her er mit svar.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.