Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильный вывод данных из БД 
:(
    Опции темы
mitris
Дата 15.9.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



Есть таблица сессий в БД, к примеру, в ней 20 записей. 
Ее содержимое имеет такой вид : sid, login, uid, time
Нужно сделать вывод списка пользователей в таком виде:
user1, user2, user3, user4
то есть расделать записи запятой.
если выводить данные так:
$sql = mysql_query("SELECT * FROM session WHERE uid!='0'");
while($row = mysql_fetch_array($row))
 {
  print $row["login"].", ";
 }
то список будет иметь такой вид: 
user1, user2, user3, user4, 
в конце спика получается лишняя запятая, как убрать ее ??
PM MAIL   Вверх
WolfON
Дата 15.9.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



ну во-первых нужно делать order by, чтобы гарантировать вывод в определенном порядке
во-вторых можно сделать implode, если сложить все строчки в массив или перед выводом складывать все в строку, а потом обрезать два последних символа
PM MAIL ICQ   Вверх
webevt
Дата 15.9.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 5.5.2005

Репутация: нет
Всего: 3



Вот вариант:
Код

$sql = mysql_query ( "SELECT * FROM `session` WHERE `sid` != 0 ORDER BY `login` ASC" );
$numrows = mysql_num_rows ( $sql );
for ( $i = 0; $i < $numrows; $i ++ )
 {
  $row = mysql_fetch_array ( $sql );
  echo $row ['login'];
  if ( $i < $numrows - 1 )
      echo ", ";
 }


И вот вариант:
Код

$sql = mysql_query ( "SELECT * FROM `session` WHERE `sid` != 0 ORDER BY `login` ASC" );
while ( $row = mysql_fetch_array ( $sql ) )
 {
   $Rows [] = $row ['login'];
 }
echo implode ( ', ', $Rows );




Это сообщение отредактировал(а) webevt - 15.9.2007, 20:15
PM MAIL   Вверх
sTa1kEr
Дата 19.9.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 9
Всего: 146



Проще сделать это одним запросом при помощи агрегатной функции GROUP_CONCAT (для MySQL >= 4.1)
Код

SELECT GROUP_CONCAT(`login` SEPARATOR  ', ') FROM `session` WHERE `uid` <> '0';

PM MAIL   Вверх
webevt
Дата 19.9.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 5.5.2005

Репутация: нет
Всего: 3



sTa1kEr,  smile 
Преклоняюсь. smile
PM MAIL   Вверх
anka
Дата 20.9.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 18.9.2006
Где: Azerbaijan

Репутация: нет
Всего: нет



Super  smile 

Помоги с этим   sTa1kEr
http://forum.vingrad.ru/forum/topic-173262...птимизация.html



Это сообщение отредактировал(а) anka - 20.9.2007, 13:05
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.