Błędne zapytanie SQL


(Vion91) #1

Witam

Napisałem takie zapytanie

$wynik1=("SELECT * FROM engine_image where image_album_id='$album_id' LIMIT=1 ");

ale wyświetla mi taki błąd:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\engine_v062\editgallery.php

po skadowaniu LIMIT=1 z kodu, błędu już nie ma.


(Sitemaster) #2

Winno być

$wynik1=("SELECT * FROM engine_image WHERE image_album_id='$album_id' LIMIT 1");

(_mnich) #3

a może skorzystaj z tego przykładu zaciągniętego z php.net

http://us2.php.net/manual/en/function.m ... -array.php

<?php

mysql_connect("localhost", "mysql_user", "mysql_password") or

    die("Could not connect: " . mysql_error());

mysql_select_db("mydb");


$result = mysql_query("SELECT id, name FROM mytable");


while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

    printf("ID: %s Name: %s", $row[0], $row[1]);  

}


mysql_free_result($result);

?>

(M@ster) #4

Ja od siebie tylko dodam, że jeśli image_album_id jest typu numerycznego, to nie powinno się porównywać go za pomocą apostrofów, gdyż prowadzi to do niepotrzebnej konwersji tej kolumny na stringi, co w efekcie zwalnia zapytanie (są to pomijalne czasy ale warto o tym pamiętać, gdyż przy innych zapytaniach może to mieć znaczenie).

$wynik1 = "SELECT * FROM engine_image WHERE image_album_id = $album_id LIMIT 1";

Nie wpływa to oczywiście na poprawność samego zapytania.

Btw. W PHP nie musisz podawać stringa w nawiasach, wystarczy $wynik1 = "..."; zamiast $wynik1 = ("...");