2015-10-04 8 views
0

Я работаю над тем, как проверить, существует ли значение в базе данных. Всякий раз, когда я пытаюсь что-то входной (пример: 000) всегда есть ошибка: Предупреждение: mysql_num_rows() ожидает параметр 1, чтобы быть ресурсом ..., но вход был сохранен в базе данныхПроверка значения, если он уже существует (PHP)

затем если ввести то же самое снова, условие, чтобы проверить, если значение существует не работает

if (isset($_POST['add'])) 
    { 
     $docid = $_POST['docid']; 

     $check = mysql_query("SELECT doc.docid, doc_details.docid FROM doc, doc_details WHERE docid='$docid'"); 
     $number_of_rows = mysql_num_rows($check); 
     if ($number_of_rows > 0) 
      { 
       echo "<script> alert('Your input already exist, no input made'); </script>"; 
      } 
     else 
      { 
       $insert = mysql_query("INSERT INTO doc (docid) VALUES ('$docid')"); 
       $insert = mysql_query("INSERT INTO doc_details (docid) VALUES ('$docid')"); 
       echo "<script> alert('ADDING: Successful'); </script>"; 
      } 
    } 
+0

Опубликовать функцию $ check –

+0

echo mysql_num_rows ($ check); Он отобразит счет –

ответ

0

Как described in the manual mysql_query возвращает false при возникновении ошибки. Как говорится в ошибке, $check не является ресурсом, поэтому, вероятно, false. Таким образом, в вашем первом запросе SELECT есть ошибка, вы должны отладить это.

Вы могли бы попробовать это, наверное, сказать вам, что это не так:

$check = mysql_query("SELECT doc.docid, doc_details.docid FROM doc, doc_details WHERE docid='$docid'"); 
    if (false === $check) 
     var_dump(mysql_error()); 

С false is never bigger than 0, ваш скрипт всегда будет пытаться вставить, не обращая внимания на ошибку.

Offtopic; вы должны migrate to mysqli_* вместо использования функций mysql_.

+0

, он говорит, строка (43) «Столбец« docid »в том, где предложение неоднозначно», как я могу это решить? – gauche23

+0

Простейшим решением является проверка только таблицы doc: '$ check = mysql_query (" SELECT docid FROM doc WHERE docid = '$ docid' ");' – Sjon

+0

спасибо, парень, он работает сейчас – gauche23

Смежные вопросы