|
|
|
| Здравствуйте!
Вот такая у меня появилась проблема, после того как обрабатываю запрос функцией mysql_num_rows, выдается ошибка, но это только в том случае если запрос вернул 0. Если результат запроса больше нуля то проблем нет. Как же быть? Как можно этого избежать?
Вот в частности код с которым и получается эта беда
$i = mysql_num_rows(mysql_query("SELECT* FROM table LIMIT 2, -1"));
echo "<br>";
echo "<br>";
$content = $i;
|
Однако код вот такого вида не выдает ошибок, даже если возвращает ноль
echo mysql_num_rows(mysql_query("SELECT* FROM table WHERE delete_day<$date"));
|
В чем же тогда проблема?
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Mefisto84
(28.01.2007 в 21:01)
| | Что означает LIMIT 2, -1 ?
Результатом корректного SQL-запроса SELECT является не число, а дескриптор объект-итератора со строками результата.
Результатом некорректного запроса является false. Применять к нему mysql_num_rows() - само по себе ошибка. | |
|
|
|
|
|
|
|
для: Trianon
(28.01.2007 в 21:26)
| | LIMIT 2, -1 означает что выбираем все записи из таблицы начиная со второй, ну вернее с третьей, вторая на считается. Так как бороться? | |
|
|
|
|
|
|
|
для: Mefisto84
(28.01.2007 в 21:40)
| | mysql_query() не должен в реальном скрипте возвращать false.
если же в процессе отладки он его таки вернул, то вызывать надо не mysql_num_rows(), а mysql_error(). Обычно после этого всё становится ясно. | |
|
|
|
|
|
|
|
для: Trianon
(28.01.2007 в 21:57)
| | Расскажите пожалуйста поподробнее, что именно нужно делать? Где вызывать? Что становится ясно? Как именно вообще избавиться от этой ошибки? | |
|
|
|
|
|
|
|
для: Mefisto84
(29.01.2007 в 18:49)
| | Преобразуйте ваш код
<?php
$i = mysql_num_rows(mysql_query("SELECT* FROM table LIMIT 2, -1"));
?>
|
следующим образом
<?php
$query = "SELECT * FROM table LIMIT 2, -1";
$tbl = mysql_query($query);
if(!$tbl) exit("Ошибка ".mysql_error());
$i = mysql_num_rows($tbl);
?>
|
Что выводится? | |
|
|
|
|
|
|
|
для: Mefisto84
(28.01.2007 в 21:01)
| | У вас оператор SELECT и символ * лились - это не правильно между ними должен быть пробел. | |
|
|
|
|
|
|
|
для: cheops
(29.01.2007 в 20:49)
| | сделал все как Вы сказали, вот какая ошибка у меня вылезла
Ошибка You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1
|
Посмотрел версию Mysql, написана вот такая 4.1.14-log
Это что получается, что фишка с -1 не на всех версиях поддерживается? И если это так, то как тогда быть? Что делать? | |
|
|
|
|
|
|
|
для: Mefisto84
(30.01.2007 в 18:35)
| | А вам зачем -1 нужен? | |
|
|
|
|
|
|
|
для: cheops
(30.01.2007 в 22:22)
| | Ну -1 мне нужен для того что бы выбрать все записи из таблицы начиная со второй, то есть до конца. В принципе это можно сделать и без -1, но тогда нужно делать еще один запрос к базе, где узнавать сколько же всего записей. Но раз есть такая возможность с -1, то почему она выдает ошибку? На локальной машине все работает. А все, не нужно, понял как это сделать по-другому. Спасибо. | |
|
|
|