PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Mr.KreDo
Отправлено: 02 Июля, 2011 - 23:03:42
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2011  
Откуда: Старый Оскол, Россия


Помог: 0 раз(а)




Всем Привет, как лучше выводить всю информацию из базы ?

1 способ
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM `ip_block` WHERE `id_user`='{$_SESSION[user_admin_sp_id]}'");      
  3. $myrow = mysql_fetch_array($result);
  4.  
  5. do
  6. {
  7. echo $myrow['ip_block'];
  8.  
  9. }
  10. while ($myrow = mysql_fetch_array($result));


2 способ

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $query_ammo2=mysql_query("SELECT `name`, `ammo`, `kills` FROM `players` ORDER BY `kills` DESC");
  4. $query_ammo=mysql_fetch_array($query_ammo2);
  5.  
  6.         echo "<table width='100%' border='1'>
  7.        <tr>
  8.        <td>&nbsp;<b>Ник</b></td>
  9.        <td>&nbsp;<b>Убийств</b></td>
  10.        <td>&nbsp;<b>Аммо</b></td>
  11.        </tr>";
  12.        
  13.     while( $query_ammo = mysql_fetch_array( $query_ammo2 ) ) {
  14.         echo "<tr>
  15.        <td>&nbsp;<b>$query_ammo[name]</b></td>
  16.        <td>&nbsp;<b>$query_ammo[kills]</b></td>
  17.        <td>&nbsp;<b>$query_ammo[ammo]</b></td>
  18.        </tr>";
  19.    
  20.     }
  21.    
  22.     echo "</table>";
  23.  


Когда я использую 2 способ то выводятся не все записи, 1 запись в базе не выводится.
Что я делаю не так?

(Отредактировано автором: 02 Июля, 2011 - 23:04:27)

 
 Top
PATCH
Отправлено: 02 Июля, 2011 - 23:13:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




PHP:
скопировать код в буфер обмена
  1. do
  2. {
  3.         echo "<tr>
  4.        <td>&nbsp;<b>$query_ammo[name]</b></td>
  5.        <td>&nbsp;<b>$query_ammo[kills]</b></td>
  6.        <td>&nbsp;<b>$query_ammo[ammo]</b></td>
  7.        </tr>";
  8. }
  9. while ($query_ammo = mysql_fetch_array( $query_ammo2 ));


я всегда вывожу через цикл do while и все записи выводятся
 
 Top
OrmaJever Модератор
Отправлено: 02 Июля, 2011 - 23:15:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PATCH пишет:
я всегда вывожу через цикл do while и все записи выводятся

Почему? этому есть обоснование?
Выводить нужно так:
Причём нужно убрать 4 строку!
PHP:
скопировать код в буфер обмена
  1. $query_ammo2=mysql_query("SELECT `name`, `ammo`, `kills` FROM `players` ORDER BY `kills` DESC");
  2.  
  3.         echo "<table width='100%' border='1'>
  4.        <tr>
  5.        <td>&nbsp;<b>Ник</b></td>
  6.        <td>&nbsp;<b>Убийств</b></td>
  7.        <td>&nbsp;<b>Аммо</b></td>
  8.        </tr>";
  9.        
  10.     while( $query_ammo = mysql_fetch_array( $query_ammo2 ) ) {
  11.         echo "<tr>
  12.        <td>&nbsp;<b>{$query_ammo['name']}</b></td>
  13.        <td>&nbsp;<b>{$query_ammo['kills']}</b></td>
  14.        <td>&nbsp;<b>{$query_ammo['ammo']}</b></td>
  15.        </tr>";
  16.    
  17.     }
  18.    
  19.     echo "</table>";

(Отредактировано автором: 02 Июля, 2011 - 23:16:23)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PATCH
Отправлено: 02 Июля, 2011 - 23:19:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




в цикле do while у меня и с четвертой строкой работает. а в while эт типо уже вывел 1 запись считается?

(Отредактировано автором: 02 Июля, 2011 - 23:22:52)

 
 Top
OrmaJever Модератор
Отправлено: 02 Июля, 2011 - 23:27:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PATCH пишет:
в цикле do while у меня и с четвертой строкой работает.

4 строка и была написана для do - while, без неё будет notice и пустая таблица (если будет в цыкле)
А если оставить 4 строку для while то результат будет со 2 строки

PATCH пишет:
а в while эт типо уже вывел 1 запись считается?

http://php.su/learnphp/cs/?cycles
там написана разница этих цыклов


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Slavenin
Отправлено: 03 Июля, 2011 - 00:06:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




при каждом обращении функция
смещает внутренний указатель результата запроса на одну позицию вперед. Поэтому записи начинают выводится со второй строки. Для смещения указателя в нужную позицию используется функция
 
 Top
Мелкий Супермодератор
Отправлено: 03 Июля, 2011 - 09:26:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11874
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 612 раз(а)




PATCH пишет:
в цикле do while у меня и с четвертой строкой работает

А теперь включите вывод всех ошибок и сравните работу обоих подходов для запроса, возвращающего 0 строк.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB