2016-06-05 4 views
1

Я пытаюсь показать сообщение, когда мой SQL-запрос возвращает значение (строка). Но это не работает. Я использую: , но эта часть кода не делает то, что я хочу. Как я могу ответить echo 'Yes';, если мой запрос возвращает значение?Проверьте, возвращает ли SQL-запрос значение

Вот мой полный код:

<?php 

$user_name = "root"; 
$password = ""; 
$database = "db"; 
$server = "localhost"; 

$db_handle = mysqli_connect($server, $user_name, $password); 
$db_found = mysqli_select_db($db_handle, $database); 

if ($db_found) { 
    $result = mysqli_query($db_handle, "SELECT date FROM table WHERE id='1' AND date BETWEEN now() AND now() + INTERVAL 14 DAY"); 
    $num_rows = mysqli_num_rows($result); 

    if (mysqli_num_rows($result)) { 
     echo 'Yes'; 
    } 
    else 
    { 
     echo 'No'; 
    } 
} 
else 
{ 
    print "Database NOT Found."; 
    mysqli_close($db_handle); 
} 

?> 
+1

Вам следует подумать об использовании mysqli или PDO – Chaim

+0

У вас есть аргументы для 'BETWEEN' назад. Нижняя дата должна быть первой. – Barmar

+0

В phpMyAdmin его рабочий – John

ответ

0

Вы должны использовать if(mysql_num_rows($result))

(Но на самом деле вы должны использовать MySQLi или PDO)

+0

SQL-запрос возвращает значение в phpMyAdmin. Но php-скрипт не показывает 'echo 'Yes';' – John

+0

@John Невозможно, чтобы этот запрос мог возвращать что-либо в phpMyAdmin из-за проблемы BETWEEN, упомянутой выше. – Barmar

+0

Когда я запускаю запрос, я получаю дату между сегодняшним днем ​​и сегодня - 14 дней – John

0

::$num_rows является частью интерфейса mysqli, однако вы используете старый (и устаревший) интерфейс mysql.

Если вы будете придерживаться MySQL, используйте mysql_num_rows():

if(mysql_num_rows($res)) 
+0

SQL-запрос возвращает значение в phpMyAdmin. Но php-скрипт не показывает 'echo 'Yes';' – John

+0

Я получил это. Это не делает ваш код правильным. '-> num_rows' не работает над функциями' mysql_', это часть 'mysqli'. Вы должны увидеть ошибку, если вы включили 'error_reporting' на –

+0

. Я изменил его на' mysqli'. Смотрите мой первый пост. Его все еще не работает. – John

0

У вас есть массив в качестве результата в вашем $ разрешении, это не объект: http://php.net/manual/en/function.mysql-fetch-row.php

использовать mysql_num_rows вместо

if (mysql_num_rows($result) > 0) { 
    echo 'Yes'; 
}       
else 
{ 
    echo 'No'; 
} 
+0

Нет, это не работает – John

+0

Его еще не исправлено – John

+0

, если у вас все еще есть проблема ..$ num_rows = mysqli_num_rows ($ result); if ($ num_rows) { echo 'Yes'; } { echo 'No'; } –

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