Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117

Вывести все имена пользователей через запятую

10.08.2016, 23:09. Показов 2696. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Подскажите пожалуйста, как организовать выборку пользователей из базы данных и вывести их через запятую?
На данный момент я наваял вот такой код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 
$check_login = mysql_query("select login from player",$db);
if (!$check_login)
{
echo "<p>запрос на выборку данных из базы не прошёл.<strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows($check_login) > 0)
{
$myrow_check_login = mysql_fetch_assoc($check_login);
 
do {
echo $myrow_check_login['login'].", ";
    }
while ($myrow_check_login = mysql_fetch_assoc($check_login));
}
else {echo "Желающих поучаствовать пока нет";}
?>
Таким образом я вывожу никнеймы пользователей и после каждого ставлю запятую, но запятая присваивается и последнему пользователю, что не совсем уместно.
Почитал про функцию implode(); но успешно применить её так и не смог. Подскажите, как добиться желаемого результата? Может можно что-то добавить в мой код и отменить последнюю запятую?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.08.2016, 23:09
Ответы с готовыми решениями:

Вывести на экран через запятую все делители натурального числа N
1. Вывести на экран через запятую все делители натурального числа N.

Вывести на экран через запятую все делители натурал. числа N, кратные 2
Вывести на экран через запятую все делители натурал. числа N, кратные 2

Вывести через запятую все числа в диапазоне [500,1000], кратные 7-ми, и их сумму
4. Вывести через запятую все числа в диапазоне , кратные 7-ми, и их сумму помогите срочно:(

11
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
11.08.2016, 00:02
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$check_login = mysql_query("select login from player",$db);
if (!$check_login)
{
echo "<p>запрос на выборку данных из базы не прошёл.<strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
$num = mysql_num_rows($check_login);
if ( $num > 0)
{
$i= 1;
while($myrow_check_login= mysql_fetch_array($check_login){
 
if($i!=$num){
echo $myrow_check_login['login'],' ,';
}else {
echo $myrow_check_login['login'];
}
$i++;
}
OR

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$check_login = mysql_query("select login from player",$db);
if (!$check_login)
{
echo "<p>запрос на выборку данных из базы не прошёл.<strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
$num = mysql_num_rows($check_login);
if ( $num > 0)
{
while($myrow_check_login[]= mysql_fetch_array($check_login));
$s = array_map(function($v){
    return $v['login'];
},$myrow_check_login);
echo implode(",",$s);
 
}
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
11.08.2016, 00:21  [ТС]
Первый вариант, запятая в конце все равно есть.
А во втором варианте, где-то ошибка в синтаксисе - пишет, что в строке $s = array_map(function($v) {return $v['login'];},$myrow_check_login); какая-то ошибка. Поправьте пожалуйста, если не сложно.

Цитата Сообщение от Azdeman Посмотреть сообщение
PHP
1
2
3
$s = array_map(function($v){
    return $v['login'];
},$myrow_check_login);
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
11.08.2016, 00:25
Цитата Сообщение от by-bad Посмотреть сообщение
какая-то ошибка.
Указали бы какая ошибка.. Ее не должно быть.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$check_login = mysql_query("select login from player",$db);
if (!$check_login)
{
echo "<p>запрос на выборку данных из базы не прошёл.<strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
$num = mysql_num_rows($check_login);
if ( $num > 0)
{
while($myrow_check_login= mysql_fetch_array($check_login)){
$s[] = $myrow_check_login['login'];
}
echo implode(",",$s);
 
}
0
276 / 201 / 143
Регистрация: 22.01.2016
Сообщений: 637
11.08.2016, 00:26
Лучший ответ Сообщение было отмечено by-bad как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$check_login = mysql_query("select login from player",$db);
if (!$check_login)
{
echo "<p>запрос на выборку данных из базы не прошёл.<strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows($check_login) > 0)
{
$str = '';
while ($myrow_check_login = mysql_fetch_assoc($check_login)) {
    $str .= $myrow_check_login['login'].", ";
}
}
else {echo "Желающих поучаствовать пока нет";}
echo substr($str, 0, -2);
1
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
11.08.2016, 00:28  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
Указали бы какая ошибка.. Ее не должно быть.


А если ошибки нет, то и в данном случае, последнему пользователю все равно присваивается запятая.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
11.08.2016, 00:31
Цитата Сообщение от by-bad Посмотреть сообщение
то и в данном случае, последнему пользователю все равно присваивается запятая.
Нет
http://sandbox.onlinephpfuncti... 0b84a812d8

Execute Code
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
11.08.2016, 00:34  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
Нет
Увы, но да.



Цитата Сообщение от mrNTF Посмотреть сообщение
echo substr($str, 0, -2);
mrNTF, огромное спасибо. Ваш вариант работает как надо.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
11.08.2016, 00:36
Цитата Сообщение от by-bad Посмотреть сообщение
Увы, но да.
Этого быть не может. И в данном случае тоже запятая есть в конце?
PHP
1
2
3
4
5
6
7
8
$arr = [
        ['login'=>'Dima','age'=>29],
        ['login'=>'Saha','age'=>23],
        ];
    foreach($arr as $v){
        $ar[] =$v['login'];
    }
echo implode(",",$ar);
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
11.08.2016, 00:38  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
Этого быть не может. И в данном случае тоже запятая есть в конце?
Parse error: syntax error, unexpected
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
11.08.2016, 00:40
Цитата Сообщение от by-bad Посмотреть сообщение
Parse error: syntax error, unexpected
У вас версия php древняя, по этому и array_map не работает и пользуетесь уязвимым mysql
Тогда так
PHP
1
2
3
4
5
6
7
8
$arr = array(
        array('login'=>'Dima','age'=>29),
        array('login'=>'Saha','age'=>23),
        );
    foreach($arr as $v){
        $ar[] =$v['login'];
    }
echo implode(",",$ar);
0
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 117
11.08.2016, 01:03  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
У вас версия php древняя, по этому и array_map не работает и пользуетесь уязвимым mysql
Тогда так
Не у меня, а у хостера. PHP Version 5.3.29.
Последний предложенный вами вариант работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.08.2016, 01:03
Помогаю со студенческими работами здесь

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

Вывести имена пользователей, компьютеров и их IP-адреса из AD
Собственно вопрос в названии темы. Вывести все данные необходимо в файл csv, фильтр. Установить фильтр по последнему логону пользователя в...

Вывести имена пользователей компьютера в ListBox
Надо вывести в листбокс все имена пользователей на данном компьютере!Помогите, пожалуйста)

Вывести имена пользователей из /etc/passwd с помощью cut
Помогите пожалуйста. Известно,что команда cut -f1 -d: /etc/passwd выдает список имен пользователей,зарегистрированных в системе. Вывести...

Вывести имена пользователей и количество оставленх сообщений
Привет Помогите плиз разобраться с проблемой... Имеется 2 таблицы user_name, comment... в первой столбцы id и name Во второй...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru