Возможный дубликат:
mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в select
// ошибка находится в строке 13
$questions =$_POST['question_text']; $checkquestion=mysql_query("SELECT question_text FROM questions LIKE '$questions' "); if(mysql_num_rows($checkquestion)) { //line 13 echo "Question exist."; } else{ mysql_query("INSERT INTO questions (question_text,field_name) VALUES ('$_POST[question_text]','$first_word')"); echo "Question saved"; }
$checkquestion = mysql_query("SELECT question_text FROM questions LIKE '$questions' "); if (!$checkquestion) { die(mysql_error()); }
Следующий шаг: Исправьте ваш SQL-запрос.
Вы всегда должны проверить, выполнено ли запрос или нет. Есть миллион возможностей для того, чтобы это пошло не так, и если ваше приложение просто вспахивает вперед, полагая, что оно преуспело в вас: a) получит несвязанные ошибки так, как вы это делаете, и b) не сможет осмыслить ваше собственное приложение.
Как указывает @alex, вы должны сделать более элегантную обработку ошибок, чем это в окончательной версии.
mysql_query
возвращает false, если есть ошибка. Вам нужно проверить это, прежде чем вызывать mysql_num_rows
.
В несвязанной заметке вы действительно не должны вводить переменную post непосредственно в запрос без использования mysql_real_escape_string
или оставить себя открытым для SQL-инъекции.
$questions = $_POST['question_text']; $checkquestion = mysql_query("SELECT question_text FROM questions LIKE '". $questions ."' "); if(mysql_num_rows($checkquestion)) { //line 13 echo "Question exist."; } else{ mysql_query("INSERT INTO questions (question_text, field_name) VALUES ('". $_POST[question_text] ."','". $first_word ."')"); echo "Question saved"; }