Snabb hjälp med Mysql fel, syntax fel med PHP.

Permalänk

Snabb hjälp med Mysql fel, syntax fel med PHP.

Löst det själv

Problemet var att vissa produkter har fam_id satt som null, vilket inte gick så bra att föra in nästa query.
Har kvar problemet nedan ifall fler har samma problem och googlar på detta.

------------------

Hoppas på lite snabb och förhoppningsvis enkel hjälp. Har kört fast och jag hoppas att det bara är jag som fått hjärnsläpp.

Sidan är en webbshop. Och de första 3 raderna är för att ta fram en produkt (kan bara vara en träff där)
Det som är lite senare är att ta fram "liknande produkter" som är ur samma "familj"

$query1 = 'SELECT * FROM tbl_product WHERE pd_id = '. $_GET['id']; $result1 = mysql_query($query1); $row1 = mysql_fetch_assoc($result1); /** Massa annan kod **/ $query3 = 'SELECT * FROM tbl_product WHERE fam_id = '.$row1['fam_id'];

OM $query3 inte får träff i databasen. Så får jag felet:

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 '' at line 1

Men om den genererar rader ur databasen så skrivs allt ut som det ska.. Vad i hela friden är felet?

Om jag ändrar

fam_id = '.$row1['fam_id'];

till

fam_id = 1';

Så fungerar koden oberoende på om jag får träffar eller inte..

Visa signatur

7700k | MSI Z170A Gaming Pro Carbon | EVGA 980ti | Corsair RMX 750W | 2*256gb Samsung RAID0 | NZXT H440 Vit | 16GB (2x8GB) DDR4 3000

Permalänk
Medlem

Var ett tag sedan jag skrev php/mysql, tror dock felet ligger i hur du har byggt upp dina query variabler.
Testa t.ex.

$query1 = ("SELECT * FROM tbl_product WHERE pd_id = '".$_GET['id']."'");

Och motsvarande ändringar på $query3.

Sedan så är det möjligt att utföra en sqlI attack mot dessa, så du borde titta över det när du har löst problemet.

Edit, du löste visst problemet själv. Dock så är dem fortfarande sårbara mot sqli attacker, så titta gärna upp och fixa hålen.