Podczas robienia prostego skryptu trafił mi się błąd z którym nigdy wcześniej nie miałem do czynienia.
Oto on:
“Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/home/xixardas/domains/moc.muzyki.ct8.pl/public_html/podglad.php on line 116 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 ‘like (od, dla) values(‘xixardas’,‘Shelerini’)’ at line 1”
Wiecie może o co chodzi?
Jakby co tutaj jest ten prosty kod w którym zrobiłem najprawdopodobniej błąd.
$profil_osoby = $_REQUEST['nick'];
$dane_osoby = mysql_fetch_array(mysql_query("select * from users where nazwa='$profil_osoby'"));
$osoby_nick = $dane_osoby['nick'];
$spr_da = mysql_fetch_array(mysql_query("select * from users where nick='$nick'"));
$nazwa_da = $spr_da["nazwa"];
$spr_like = mysql_fetch_array(mysql_query("select COUNT (*) from like where like='1' od='$nazwa_da' AND dla='$profil_osoby' LIMIT 1"));
if ($spr_like[0] >= 1) {
$komunikaty .= "Nie możesz dodać kilku like dla jednej osoby.
";}
if (!$komunikaty) {
$dodawajka = mysql_query("insert into like (od, dla) values('$nazwa_da','$profil_osoby')");
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/home/xixardas/domains/moc.muzyki.ct8.pl/public_html/podglad.php on line 116 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 ‘like (od, dla) values(‘xixardas’,‘Shelerini’)’ at line 1
– Dodane 21.08.2013 (Śr) 15:03 –
jakby co wywalam te błędy przez
echo mysql_error()
– Dodane 21.08.2013 (Śr) 15:17 –
Wszędzie gdzie w zapytaniu sql było słowo like zamieniłem je na like i teraz został mi już błąd tylko
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/home/xixardas/domains/moc.muzyki.ct8.pl/public_html/podglad.php on line 116
Patrząc na linijki jest to ten kod.
$spr_like = mysql_fetch_array(mysql_query(“select COUNT (*) from like where like=‘1’ AND od=’$nazwa_da’ AND dla=’$profil_osoby’ LIMIT 1”));
Warning zwraca bardzo dobrą (jak na php) informację o przyczynie błędu. Oznacza on, że argument podany do funkcji powinien być resourcem, którego zwraca mysql_query(). mysql_query() zwraca resource, gdy zapytanie się powiedzie lub zwraca FALSE, gdy się nie powiedzie. FALSE jest boolem. Dlatego oczywiste jest, że zapytanie się nie powiodło. A dlaczego się nie powiodło? Ano dlatego, że między count a nawiasem dałeś spację.
Wszystko to sam byś wiedział, gdybyś spróbował czytać co do ciebie pisze php…