Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Объединить результат mysql_fetch_array() в одну переменную

Ответить
Настройки темы
[решено] Объединить результат mysql_fetch_array() в одну переменную
D_Master


Сообщения: n/a

Профиль | Цитировать


Всем привет!

Подскажите, пожалуйста, каким образом можно объединить весь результат функции mysql_fetch_array(); в одну переменную?
Обычно я делаю так:
PHP код: Выделить весь код

<?

$sql 
mysql_query("SELECT `name` FROM `users` WHERE `name` LIKE 'Alex%' ");
$rows mysql_fetch_array($sql);
do{
echo 
$rows['name'].'<br>';
}
while(
$rows mysql_fetch_array($sql));
?>

Выведет, к примеру,
Код: Выделить весь код
Alex
AlexMe
Alexander
Но сейчас понадобилось вернуть все данные массива из своей функции и затем только вывести на экран.
Должно получиться что-то вроде такого:
Код: Выделить весь код
Alex<br>AlexMe<br>Alexander<br>

Отправлено: 04:14, 08-07-2009

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


т.е. рекурсивно склеить элементы массива? см. пример.

Отправлено: 04:32, 08-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


по умолчанию mysql_fetch_array содержит и числовой и ассоциативный массивы, поэтому при склеивании будут дубли. Чтобы избежать этого, нужно вторым параметром добавить константу MYSQL_ASSOC (чтобы оставить только ассоциативный)... либо юзать mysql_fetch_assoc...

Отправлено: 04:47, 08-07-2009 | #3

D_Master


Сообщения: n/a

Профиль | Цитировать


Цитата Sham:
см. пример. »
То что надо, спасибо большое!
Готовый код, если надо
PHP код: Выделить весь код

<?php

    
    
function array_implode($arrays, &$target = array()) {
        foreach (
$arrays as $item) {
            if (
is_array($item)) {
                
array_implode($item$target);
            } else {
                
$target[] = $item;
            }
        }
        return 
$target;
    }
    
    
$connect_db mysql_connect('localhost''user''password');
    
$select_db mysql_select_db('database'$connect_db);
    
$sql mysql_query("SELECT `name` FROM `users` WHERE `name` LIKE 'Alex%' ");
    
$row mysql_fetch_array($sql);
    
    
$return = array();
    do
    {
        
$return[count($return)] = $row['name'].'<br>';
    }
    while(
$row mysql_fetch_array($sql));
        
    echo 
join(' 'array_implode($return));    
    
/*
    Выводит: 
    
    Alex
    AlexMe
    Alexander
    
    */
?>


Отправлено: 04:57, 08-07-2009 | #4


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


А как вам такой вариант? Все значения пишем в массив, а потом как хотим так и выводим.
PHP код: Выделить весь код

<?php 

    
    $connect_db 
mysql_connect('localhost''user''password'); 
    
$select_db mysql_select_db('database'$connect_db); 

    
$sql mysql_query("SELECT `name` FROM `users` WHERE `name` LIKE 'Alex%' "); 
     
    
$return = array(); 

    while(
$row mysql_fetch_array($sql))
    {
            
$return [$i][0] = $row['name'];
            ++
$i;
    };    
?>

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 19:35, 08-07-2009 | #5


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Igor_I, разве можно называть переменную зарезервированным словом return?

Отправлено: 19:46, 08-07-2009 | #6


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Извините, я особо не раздумывал над переделкой примера. Обычно названия переменных делаю понятными. В данном случае было бы - $name или $sqlname

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 21:38, 08-07-2009 | #7


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата Coutty:
Igor_I, разве можно называть переменную зарезервированным словом return? »
не знаю на сколько можно или нельзя - в соответсвие языку, но раобтает без ошибок.
и даже такой вариант: $include, и такой $function ...

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:38, 08-07-2009 | #8


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


переменную можно назвать любым словом, даже нецензурным
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:30, 09-07-2009 | #9


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Sham, это понятно, просто есть слова которые без $ могут что-то обозначать, лучше такие не использовать.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 17:23, 10-07-2009 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Объединить результат mysql_fetch_array() в одну переменную

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как записать в переменную результат выполнения команды? MSI Скриптовые языки администрирования Windows 64 24-12-2020 18:20
CMD/BAT - [решено] Строка результат выполнения filever.exe передать в переменную dARKest Скриптовые языки администрирования Windows 3 07-09-2009 22:50
Прочее - Как объединить подсети в одну сеть? ldima Сетевые технологии 14 30-08-2009 18:20
Объединить 2 разные ЛВС в одну golowastik Microsoft Windows NT/2000/2003 23 08-02-2009 18:23
Как можно объединить две подсети в одну? Pallot Сетевые технологии 7 21-03-2006 11:18




 
Переход