Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2011, 15:13   #1
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
Восклицание Проверить точное количество строк, оставляя массив в исходном состоянии

Добрый день!

Столкнулся со следующей проблемой. Есть код

PHP код:
    $result mysql_query($query$link);

    echo(
"<ol>");
    while(
$row=mysql_fetch_array($result))
     {
        echo(
"<li>".$row['nm']."</li>");
     };
    echo(
"</ol>"); 
Он выводит нумерованный список записей по заданному критерию. НО перед его выводом мне необходимо получить кол-во записей и если > 0 то вывести, в противном случае, уйти в другую ветку. Как только я пытаюсь использовать mysql_fetch_array($result) и присвоить переменной - вычитается первая запись из массива. Выводятся (все - первая).

Как можно (не прибегая к двойной выборке ) проверить точное количество строк, оставляя массив в исходном состоянии?
alt5000 вне форума Ответить с цитированием
Старый 02.12.2011, 15:48   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

count($row)
ADSoft вне форума Ответить с цитированием
Старый 02.12.2011, 15:51   #3
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
Восклицание

Цитата:
Сообщение от ADSoft Посмотреть сообщение
count($row)
Да, но как только я присвою $row=mysql_fetch_array($result) у меня исчезнет первая строка выборки
alt5000 вне форума Ответить с цитированием
Старый 02.12.2011, 16:23   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

PHP код:
  if ($result mysql_query($query$link)) {

    echo(
"<ol>");
    while(
$row=mysql_fetch_array($result))
     {
        echo(
"<li>".$row['nm']."</li>");
     };
    echo(
"</ol>"); }
          else {echo 
"ничего нет";} 
ADSoft вне форума Ответить с цитированием
Старый 02.12.2011, 16:30   #5
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
По умолчанию

Спасибо, попробую.
alt5000 вне форума Ответить с цитированием
Старый 02.12.2011, 17:18   #6
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

mysql_num_rows
Виталий Желтяков вне форума Ответить с цитированием
Старый 02.12.2011, 19:00   #7
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
По умолчанию

Полезная штука. Буду знать. Спасибо.
alt5000 вне форума Ответить с цитированием
Старый 02.12.2011, 19:09   #8
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
Восклицание

Цитата:
Сообщение от ADSoft Посмотреть сообщение
PHP код:
  if ($result mysql_query($query$link)) {

    echo(
"!!!");

    echo(
"<ol>");
    while(
$row=mysql_fetch_array($result))
     {
        echo(
"<li>".$row['nm']."</li>");
     };
    echo(
"</ol>"); }
          else {echo 
"ничего нет";} 
Странно, но условие всегда истинно. То есть он всегда идет по первому условию, даже если записей в БД с такими ИД вообще нет.
alt5000 вне форума Ответить с цитированием
Старый 02.12.2011, 19:38   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от alt5000 Посмотреть сообщение
Странно, но условие всегда истинно. То есть он всегда идет по первому условию, даже если записей в БД с такими ИД вообще нет.
mysql_query() :
Цитата:
Возвращаемые значения

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других, mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Используйте mysql_num_rows() для выяснения количества рядов в результате SELECT-запроса или mysql_affected_rows() для выяснения количества обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.

mysql_query() также завершится с ошибкой и вернет FALSE, если у пользователя нет доступа к какой-либо из таблиц, фигурирующих в запросе.
FALSE - только в случае ошибки запроса.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51
Количество строк Mihanches Общие вопросы Delphi 2 11.10.2010 13:18
Получить массив из элементов, встречающихся в исходном массиве ровно один раз без повторений Shikarmo4000 Помощь студентам 0 25.05.2010 01:27
количество строк ciaonataha Общие вопросы C/C++ 3 05.05.2009 16:31
Как проверить количество свободного и занятого места на логическом диске SeRhy Общие вопросы Delphi 4 09.06.2008 15:39