Permalänk
Medlem

Konstigt problem med PHP

Hej, jag har följande kod inom en funktion (det finns ingen annan kod där, $option är den enda parametern):

var_dump($option); $temp = mysql_fetch_assoc(mysql_query("SELECT * FROM lottery_general WHERE option='$option'")); var_dump($option);

Men av någon anledning så kommer det här fram på skärmen:

string(10) "admin_pass" Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a7503145/public_html/lotteri/functions.php on line 117 string(10) "admin_pass" string(4) "next" string(4) "next" string(4) "pott" string(4) "pott" string(10) "total_pott" string(10) "total_pott"

Min största fråga är hur $option plötsligt blev ändrad, då jag helt enkelt inte förstår mig på vad som händer där. Är det en bugg eller har jag missat något?
Kör förresten på PHP 5.2.17, utan möjlighet att byta version själv.

Permalänk
Medlem

Kan vara att du inte har lagt in en punkt före och efter $option i strängen som ställer till det.

Permalänk
Medlem

Får samma resultat med

$temp = mysql_fetch_assoc(mysql_query("SELECT * FROM lottery_general WHERE option='" . $option . "'"));

EDIT: Däremot spökar inte $temp om jag tar bort mysql_fetch_assoc().
EDIT2:
Däremot fungerar det inte även om jag gör

$temp1 = mysql_query("SELECT * FROM lottery_general WHERE option='$option'"); $temp = mysql_fetch_array($temp1);

eller byter ut mysql_fetch_assoc() till mysql_fetch_array().

Permalänk
Inaktiv

Testa:

$temp = mysql_query("SELECT * FROM lottery_general WHERE `option`='" . $option . "'") or die(mysql_error());

Permalänk
Medlem

Visade sig att av någon anledning funkade det inte eftersom tabellen hette option. Funkade när jag bytte namn på den.

Permalänk
Medlem
Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem

Du måste ju sätta `` runt option eftersom det är ett reserverat ord? WHERE `option`='test'

Permalänk
Legendarisk
Skrivet av Snacker:

Hej, jag har följande kod inom en funktion (det finns ingen annan kod där, $option är den enda parametern):

var_dump($option); $temp = mysql_fetch_assoc(mysql_query("SELECT * FROM lottery_general WHERE option='$option'")); var_dump($option);

Men av någon anledning så kommer det här fram på skärmen:

string(10) "admin_pass" Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a7503145/public_html/lotteri/functions.php on line 117 string(10) "admin_pass" string(4) "next" string(4) "next" string(4) "pott" string(4) "pott" string(10) "total_pott" string(10) "total_pott"

Min största fråga är hur $option plötsligt blev ändrad, då jag helt enkelt inte förstår mig på vad som händer där. Är det en bugg eller har jag missat något?
Kör förresten på PHP 5.2.17, utan möjlighet att byta version själv.

Kontrollera alltid om din query lyckades, och om den inte gjorde det kontrollera vad felet var. Se det första exemplet här:
http://www.php.net/manual/en/function.mysql-query.php

Mysql_ är f.ö. på väg att ersättas, överväg att använda Mysqli_ eller PDO istället:
http://www.php.net/manual/en/mysqlinfo.api.choosing.php

Skickades från m.sweclockers.com

Visa signatur

Abstractions all the way down.