Недавно я перестроил свой сайт, и теперь я получаю эту ошибку:
Предупреждение: mysql_result(): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/xx/public _html/asdf.com/comsel.php в строке 28
Предупреждение: mysql_result(): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/xx/public _html/asdf.com/comsel.php в строке 29
Предупреждение: mysql_result(): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/xx/public _html/asdf.com/comsel.php в строке 30
Предупреждение: mysql_result(): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/xx/public _html/asdf.com/comsel.php в строке 31
Эти строки выглядят следующим образом:
mysql_connect($dbhost,$dbuser,$dbpass)
or die("Error: Failed to connect to database");
mysql_select_db($dbname)
or die("Error: Failed to select databse");
$query = "SELECT * FROM foxlose ORDER BY RAND ( ) LIMIT 1";
$result = mysql_query($query);
$title = mysql_result($result,$i,"title");
$link = mysql_result($result,$i,"link");
$nomen = mysql_result($result,$i,"name");
$text = mysql_result($result,$i,"text");
mysql_close();
Последние четыре строки перед mysql_close(); являются строками 28-31.
Только вот что: эти строки были одинаковыми в старой версии моего сайта, и они работали. Я не могу понять, что изменилось. Код также отлично работает, когда я использую свой компьютер в качестве сервера и размещаю его локально.
Любая идея, что эта ошибка пытается мне сказать?
Изменить: добавлено все mysql в документе.
Попробуйте удалить пробел после RAND:
$query = "SELECT * FROM foxlose ORDER BY RAND() LIMIT 1;
Мне кажется странным, что вы закрываете соединение с базой данных:
mysql_close();
а затем вы используете
$variable = mysql_result(...);
Как правило, если вы хотите узнать причину ошибки, используйте функцию mysql_error.
Здесь вы можете сделать несколько вещей.
то есть.
mysql_query($query, $connction);
Кроме того, Томас Клейсон указал, что вы получаете результаты. Если результатов нет, mysql_result выдаст ошибку
Убедитесь, что mysql_select_db (при условии, что вы используете это), правильно подключается к базе данных.
В зависимости от версий и т.д. вам может понадобиться точка с запятой, чтобы закрыть оператор mysql
то есть.
$query = "SELECT * FROM foxlose ORDER BY RAND () LIMIT 1;";
Большая часть этого была взята у других людей с подобными проблемами. полный кредит (и больше идей) здесь: http://www.daniweb.com/forums/thread26425.html