Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как занести результат print_f в переменную?

 PHP.SU

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


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

> Без описания
SLameN
Отправлено: 03 Февраля, 2014 - 09:35:07
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




Как занести результат printf в переменную?

PHP:
скопировать код в буфер обмена
  1.  
  2. $email_result = mysql_query("SELECT email FROM struktura_kc WHERE name_dol = 5");
  3. $email_myrow = mysql_fetch_array($email_result);
  4.  
  5. do {
  6. printf("%s;",$email_myrow['email']);
  7. }
  8. while($email_myrow = mysql_fetch_array($email_result));
  9.  

(Отредактировано автором: 03 Февраля, 2014 - 09:36:04)

 
 Top
Ch_chov
Отправлено: 03 Февраля, 2014 - 09:38:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




 
 Top
SLameN
Отправлено: 03 Февраля, 2014 - 09:47:25
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




Проблема, что это находится в do, while, оно же будет перезатирать данную переменную и в итоге получится только последнее значение.


PHP:
скопировать код в буфер обмена
  1.  
  2. do {
  3. $test = sprintf("%s;",$email_myrow['email']);
  4. }
  5. while($email_myrow = mysql_fetch_array($email_result));
  6.  
 
 Top
VenZell
Отправлено: 03 Февраля, 2014 - 09:54:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013  


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




Так добавляйте в массив, в чем проблема?
PHP:
скопировать код в буфер обмена
  1. do {
  2. $test[] = sprintf("%s;",$email_myrow['email']);
  3. }
  4. while($email_myrow = mysql_fetch_array($email_result));
 
 Top
SLameN
Отправлено: 03 Февраля, 2014 - 10:02:48
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




Спасибо! Сделал так:
PHP:
скопировать код в буфер обмена
  1.  
  2. do {
  3. $test[] = sprintf("%s; ",$email_myrow['email']);
  4. }
  5. while($email_myrow = mysql_fetch_array($email_result));
  6.  
  7. for ($i = 1; $i <= count($test); $i++) {
  8. echo $test[$i];
  9. }
  10.  
 
 Top
IllusionMH
Отправлено: 03 Февраля, 2014 - 10:52:00
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




SLameN, конкатенация строк же. $a .= $b; тоже что и $a = $a.$b; ну хоть чуть-чуть основы нужно вспоминать.
 
 Top
SLameN
Отправлено: 03 Февраля, 2014 - 11:35:03
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




Радовался-радовался, но эффект не тот, что хотел... Мне то нужно все в переменную загнать, а я просто их вывел. Натолкните, пжлст на мысль

IllusionMH
А как мне понять сколько раз выводить?
$test[0].$test[1]

Если я правильно понял ваш намек
 
 Top
teddy
Отправлено: 03 Февраля, 2014 - 11:38:39
Post Id


Участник


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


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




Говорит в истерике: Срочно, сроочно!!! Удалите все уроки Попова

Зачем сохранять так
$test[] = sprintf("%s;",$email_myrow['email']);

Когда можно просто так
$test[] = $email_myrow['email'];

И зачем дважды делать фетч эррей?

Раскройте секрет, мб я чего то недопонимаю?

(Отредактировано автором: 03 Февраля, 2014 - 11:43:41)

 
 Top
IllusionMH
Отправлено: 03 Февраля, 2014 - 11:40:25
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




SLameN, я намекал на то, что можно сразу склеить всю строку в цикле, а не создавать массив который потом во втором цикле выводить.
Это при условии, что в итоге нужна строка, а не массив.
 
 Top
SLameN
Отправлено: 03 Февраля, 2014 - 11:52:55
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




Ребят, вы простите если я туплю... Я понял, что не нужно для 1 переменной делать целый printf (у меня просто много всего было там, я все вырезал, чтобы сюда код весь не вставлять).

Второй fetch_array, это уроки Попова...

PHP:
скопировать код в буфер обмена
  1.  
  2. $email_result = mysql_query("SELECT email FROM struktura_kc WHERE name_dol = 5");
  3.  
  4.         do {
  5.                 $test[] = $email_myrow['email'];
  6.         }
  7.         while($email_myrow = mysql_fetch_array($email_result));
  8.  
  9.         print_r($test);
  10.  


И как мне из этого массива выдернуть данные в отдельную переменную?

(Отредактировано автором: 03 Февраля, 2014 - 11:56:01)

 
 Top
teddy
Отправлено: 03 Февраля, 2014 - 12:06:07
Post Id


Участник


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


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




SLameN пишет:
Второй fetch_array, это уроки Попова...

Значит я угадал Ха-ха

Я как понял Вам нужно достать эмейлы из БД и вывести их разделив точкой с запятой?
Если да то можете попробовать так(правильность запроса оставляю на Вас, ибо не знаю что там откуда берется)
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT `email` FROM `struktura_kc` WHERE `name_dol` = 5");
  2. while($row = mysql_fetch_array($query)){
  3.     echo $row['email'].';';
  4. }

если в отдельную переменную надо тогда создайте её до цикла и присвойте пустую строку
$str = '';
а в цикле вместо echo напишите
$str .= $row['email'].';';

(Отредактировано автором: 03 Февраля, 2014 - 12:11:10)

 
 Top
esterio
Отправлено: 03 Февраля, 2014 - 12:07:10
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




SLameN пишет:
Второй fetch_array, это уроки Попова...

Знаете как говорят когда слишать о Попове? В топку Попова с его уроками
 
 Top
SLameN
Отправлено: 03 Февраля, 2014 - 12:10:40
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Февр. 2012  


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




teddy
Большое спасибо за помощь... и простите за тупость... Ан насчет Попова, откуда ж я знал, что все так плохо Недовольство, огорчение

(Отредактировано автором: 03 Февраля, 2014 - 12:16:38)

 
 Top
teddy
Отправлено: 03 Февраля, 2014 - 12:17:38
Post Id


Участник


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


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




SLameN
Да все норм... не нужно извиняться, это нормально... Вы просто не знали что не нужно его смотреть))

На будущее: лучше съезжать с mysql и взять хотя бы mysqli(первый устарел), есть процедурный подход и ООП. Функции те же самые только вместо mysql_что-то нужно писать mysqli_что-то

Может есть парочка функций которая записывается по другому но не суть важно... если возникают проблемы ищите нужную функцию на php.net

Не за что... П:С я тож когда ещё только научился hello world смотрел видео, хорошо на Попова не наткнулся... "Специалист PHP" видеогайд №1 раз уж Вы любитель... А когда более менее научитесь понимать что к чему уже конечно же читайте мануал

(Отредактировано автором: 03 Февраля, 2014 - 12:18:58)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB