Малко пояснение към „Warning: mysql_fetch_array(): “

Stanimirvoivoda

Registered
Добър ден имам малак проблем:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Код:
$query = mysql_query("SELECT * FROM mynewstable WHERE do='$profile[id]");
$row = mysql_fetch_array($query);

искам да подчертая , че съм нов в пхп и бих искал пояснение къде бъркам , къвички или скоби?! :) 

Мерси!
 
Подобни проблеми се решават най-често с mysql_error - дава грешката от заявката. Not a valid mysql resource означава, че променливата ти не съдържа валидна заявка - т.е. най-често имаш някаква грешка в нея.

PHP:
$query = mysql_query("SELECT * FROM mynewstable WHERE do='$profile[id]") or die(mysql_error());
//ще изкара грешката, ако има такава.
Друго нещо - такъв запис е ГРЕШЕН:

Код:
'Some text in quotes.. $var[djas]';

Около 'djas' трябва да има кавички. + пак няма да тръгне, заттова най-добре го изкарай в отделна променлива + използвай двойна кавичка "", когато имаш променлива в стринг. Ако използваш единични '' няма да тръгне (по очаквания начин)

PHP:
$neshto = $var['djas'];//има кавички
"Some text in quotes $neshto";
И така, твойто трябва да бъде така:
PHP:
$profile_id = $profile['id'];
$profile_id = mysql_real_escape_string($profile_id);//в твоята ситуация (като начинаещ) трябва поне това да го има
$query = mysql_query("SELECT * FROM mynewstable WHERE do='$profile_id'") or die(mysql_error());

Ще е хубаво да прочетеш някои неща в google за
mysql vs mysqli
sql prepared statements
mysql bind params
и накрая - pdo
 

Back
Горе