Проблема со скриптом

Рейтинг: 0Ответов: 2Опубликовано: 22.10.2014

Вот смотрите:

$sql = "SELECT id FROM book WHERE name = 'Книга'";
$result = mysql_query($sql);
if(mysql_num_rows($result)==0){ 
    echo "Записи до сих пор нет!"; 
}else{ 
    echo "Такая запись уже существует!"; 
}

Я подключаюсь к таблице, задаю данные в SELECT id FROM book WHERE, сохраняю, заливаю на хостинг, и все равно скрипт не срабатывает. Я уже весь гугл перерыл, так и ничего не работает. ( Помогите, пожалуйста.

Ответы

▲ 2

В mysql_num_rows() попадает совсем не то, что нужно.

В случае ошибки в запросе, mysql_query() возвращает значение FALSE. Именно об этом и говорит ошибка, что в mysql_num_rows() попало булево значение вместо ресурса, то есть этот самый FALSE. Проверяйте ошибки в запросе SQL или в подключении к БД, можно вызовом mysql_error() - там в документации есть пример:

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("nonexistentdb", $link);
    echo mysql_errno($link) . ": " . mysql_error($link). "\n";

    mysql_select_db("kossu", $link);
    mysql_query("SELECT * FROM nonexistenttable", $link);
    echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

Подставьте в него свои данные и посмотрите результат.

▲ 1

А зачем сравнивать выражение

mysql_num_rows($result)

с 0? Если есть записи, то выражение в любом случае уже TRUE, разве нет?