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 :: Непонятка с list'ом

 PHP.SU

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


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

> Без описания
arimanecro
Отправлено: 11 Августа, 2015 - 16:18:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 209
Дата рег-ции: Май 2014  


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




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if(!is_file('./ORDERS.txt')) {
  4.         echo 'no orders'; die;}
  5.         $orders = file('./ORDERS.txt');
  6.  
  7.         $position = mysqli_query($connection, "SELECT position FROM settings");
  8. while($pos = mysqli_fetch_assoc($position)) {
  9.         $status = $pos['position'];
  10. }
  11.  
  12. foreach($orders as $order) {
  13.                 if(!stristr($order, $status)){
  14.                         next($orders);
  15.                 }
  16.                 else {
  17.                 list($oid, $name, $email, $address, $phone, $status) = explode('|', $order);
  18.                 echo $order.'<br>'; // выводит только одно значение, хотя там два, но стоит убрать list, то выдает 2 значения. Почему List блокирует дальнейшее прохождение цикла?
  19.                 }
  20.                 }
  21.  
 
 Top
andrewkard
Отправлено: 11 Августа, 2015 - 22:07:01
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




arimanecro
Возможно есть ошибка, которая не выводится. Проверьте данные.
 
 Top
DelphinPRO
Отправлено: 11 Августа, 2015 - 22:26:52
Post Id



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


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


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




хуйню порите товарищ. list не останавливает цикл ни при каких условиях.

Обрисуйте проблему более понятным языком, лучше с примерами кода


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
arimanecro
Отправлено: 12 Августа, 2015 - 09:31:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 209
Дата рег-ции: Май 2014  


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




DelphinPRO пишет:
list не останавливает цикл ни при каких условиях.


это понятно, но логически, а не технически, получается что так Ниндзя

DelphinPRO пишет:
Обрисуйте проблему более понятным языком, лучше с примерами кода


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

Даю более развернуто:

есть файл ORDERS.txt, его содержание:

55b72b9a0d300|Lynda|lynda@aol.com|str.groove 788|859860958|unread
55b72be3c7f3e|Zorro|zorro@mail.ru|str.silver street|+40006060606|unread

PHP:
скопировать код в буфер обмена
  1. if(!is_file('./ORDERS.txt')) {
  2.         echo 'no orders';}
  3.         $orders = file('./ORDERS.txt');
  4.  
  5.         $status = 'unread';
  6.  
  7.         foreach($orders as $order) {
  8.                 if(!stristr($order, $status)){
  9.                         next($orders);
  10.                 }
  11.                 else {
  12.                 list($oid, $name, $email, $address, $phone, $status) = explode('|', $order);
  13.                 echo $name; // Выводит только Lynda!
  14.                 }
  15.                  
  16.                 }
 
 Top
andrewkard
Отправлено: 12 Августа, 2015 - 10:11:48
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




arimanecro
У Вас второй цикл попадает в

(Отредактировано автором: 12 Августа, 2015 - 10:14:34)

 
 Top
arimanecro
Отправлено: 12 Августа, 2015 - 10:19:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 209
Дата рег-ции: Май 2014  


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




andrewkard

огромное спс, помогло.

andrewkard пишет:
У Вас второй цикл попадает в


А почему он туда попадает?
Ведь strpos и stristr почти синонимичны...И именно только с strpos срабатывает...
 
 Top
andrewkard
Отправлено: 12 Августа, 2015 - 10:21:34
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




и еще, я думаю не нужно заменять переменную $status в $list
(Добавление)
вот так работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!is_file('ORDERS.txt')) {
  3.     echo 'no orders';}
  4. $orders = file('ORDERS.txt');
  5. $status = 'unread';
  6.  
  7. foreach($orders as $order) {
  8.     if(strpos($order,$status)=== false){
  9.         next($orders);
  10.     } else {
  11.         list($oid, $name, $email, $address, $phone, $status1) = explode('|', $order);
  12.         echo $name; // Выводит Lynda и Zorro
  13.     }
  14. }
  15.  
 
 Top
Sail
Отправлено: 12 Августа, 2015 - 10:25:59
Post Id



Участник


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


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




andrewkard, ещё next() замените на continue.
 
 Top
arimanecro
Отправлено: 12 Августа, 2015 - 10:30:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 209
Дата рег-ции: Май 2014  


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




хм...и все таки не работает ))
если заменить в текстовом файле, например unread, на read, он все равно выдаст обе записи, а должен только там где unread
 
 Top
andrewkard
Отправлено: 12 Августа, 2015 - 10:30:56
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




arimanecro пишет:
А почему он туда попадает?

что то не то записалось в переменную $status Улыбка
(Добавление)
arimanecro пишет:
хм...и все таки не работает ))

работает:
55b72b9a0d300|Lynda|lynda@aol.com|str.groove 788|859860958|read
55b72be3c7f3e|Zorro|zorro@mail.ru|str.silver street|+40006060606|unread

PHP:
скопировать код в буфер обмена
  1.  
  2. if(!is_file('ORDERS.txt')) {
  3.     echo 'no orders';}
  4. $orders = file('ORDERS.txt');
  5. $status = 'unread';
  6.  
  7. foreach($orders as $order) {
  8.     if(strpos($order,$status)=== false){
  9.         continue;
  10.     } else {
  11.         list($oid, $name, $email, $address, $phone, $status1) = explode('|', $order);
  12.         echo $name; // Выводит Zorro
  13.     }
  14. }
  15.  
 
 Top
arimanecro
Отправлено: 12 Августа, 2015 - 10:36:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 209
Дата рег-ции: Май 2014  


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




прошу прощения, все работает, редактировал копию текстового файла, а не оригинал Закатив глазки

(Отредактировано автором: 12 Августа, 2015 - 10:40:11)

 
 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