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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2011, 22:03   #1
dutch92
Новичок
Джуниор
 
Регистрация: 15.03.2011
Сообщений: 1
Печаль mysql_query("select * ...) возвращает пустую таблицу

Проблема такая. В есть таблица type. В ней два столбца id и name. В phpMyAdmin когда смотришь эту таблицу, то все данные, хранящиеся в ней видны. Вот код на php:
PHP код:
<?php
include 'connect.php';
include 
'incl/head.php';
$r=mysql_query("select * from type");

if(!
$a) echo "Ошибочка вышла";
else {
    for (
$i=0;$i<mysql_num_rows($r);++$i){
        
$a=mysql_fetch_array($r);
        echo 
$a[id]." ".$a[name];
        }
    };
echo 
mysql_num_rows($r);     
?>
В итоге выводит Ошибочка вышла3. Выводит "3" потому что в таблице три записи. Скажите пожалуйста, в чем же проблема?
dutch92 вне форума Ответить с цитированием
Старый 15.03.2011, 22:06   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

потому как сравнение тупое....
смотрим - существует ли $a - конечно нет - пишем ошибочка... НЕ обрабатываем блок что в else - в конце пишем кол-во столбцов...

все верно... как задан алгоритм- так и пашет
ADSoft на форуме Ответить с цитированием
Старый 16.03.2011, 08:36   #3
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Вы проверяете if (!$a). Ранее переменная $a нигде не определена и не проинициализирована, поэтому в условии она впервые создается и инициализируется "пустотой". В таком случае логично, что !$a = true, и выводится "Ошибочка вышла".

Здесь логичнее было бы написать так:
PHP код:
<?php
include 'connect.php';
include 
'incl/head.php';
$r=mysql_query("select id, name from type");
if (
mysql_num_rows($r) > 0)
{
  while (
$a=mysql_fetch_array($r))
  {
    echo 
$a['id']." ".$a['name'];
  }
}
else
{
  echo 
"Ошибочка вышла";
}
echo 
mysql_num_rows($r);
?>
P.S. Код не проверял, так что может где и опечатался.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компонент idHttp1 возвращает "Socket Error #10054" AndreyK Работа с сетью в Delphi 1 22.02.2011 19:42
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу ArtInt SQL, базы данных 9 12.05.2010 15:40
Range("хххххх").Select и обрамление диапазона рамкой ShamanK Microsoft Office Excel 3 09.11.2009 15:52
если поле Patr пусто или null то пустую строку возвращает azat БД в Delphi 5 01.02.2008 13:05