С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182

В цикле цикл php как ?

23.06.2015, 00:18. Показов 3942. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
echo бла-бла и массив с id  другой таблицы $arr = unserialize($array['customer_order'])
}
Как мне в этом-же цикле вывести в цикле данные другой таблицы ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.06.2015, 00:18
Ответы с готовыми решениями:

Как сделать цикл в цикле
Здравствуйте.Помогите разобраться на сайте в цикле выводиться модалка а в модалке в цикле выводяться картинки для слайда сделал вот так...

Как поменять буквы в слове в цикле php?
Я хочу создать цикл который будет перебирать все возможные комбинации от 11aa до 99zz. Я понял как поменять цифры, а как поменять буквы в...

Цикл в Цикле (do-while)
Здравствуйте товарищи, систему комментарии. (То есть я добавил комментарии на news_id=2, но комментарии стал появляться везде а не как...

32
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
23.06.2015, 00:57
тебе вложенные циклы нужны?
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
23.06.2015, 01:19  [ТС]
Я нуб не знаю наверно
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
23.06.2015, 01:36
Лучший ответ Сообщение было отмечено Афган как решение

Решение

тут суть задачи не совсем ясна ))
к примеру,

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$isho_odin_resultat = mysql_query("SELECT * FROM *********, $db);
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
  while($array2 = mysql_fetch_assoc($isho_odin_resultat)){
 
    вот здесь тебе будут доступны данные из $array  и $array2
 
}
 
 
}
но нужно понимать, что внутренний while будет пробегать каждый раз по всем элементам $array2 для каждого полученного элемента из $array .
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
23.06.2015, 18:02  [ТС]
Не могу я разобраться
PHP
1
2
3
4
5
6
7
8
9
10
11
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
$resultat_2 = mysql_query("SELECT * FROM finished_goods WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
      $arr = unserialize($array['customer_order']);//Здесь массив с id другой таблицы
      echo '<div class="css_1" style="width: 1074px; height: 382px; margin-top: 3px;">'.'бла-бла'.'</div>';
      while($array_2 = mysql_fetch_assoc($resultat_2))
      {
             как мне здесь получить данные по id из массива $arr ???
      }
}
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
23.06.2015, 18:59
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
$resultat_2 = mysql_query("SELECT * FROM finished_goods WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
      $arr = unserialize($array['customer_order']);//Здесь массив с id другой таблицы
      echo '<div class="css_1" style="width: 1074px; height: 382px; margin-top: 3px;">'.'бла-бла'.'</div>';
      while($array_2 = mysql_fetch_assoc($resultat_2))
      {
             как мне здесь получить данные по id из массива $arr ???  вот так :
 
foreach ( $arr  as $yo){   echo $yo;   }
 
      }
}
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
23.06.2015, 19:17  [ТС]
PHP
1
2
3
4
foreach ( $arr  as $yo){   echo $yo;   }
 
      }
}
мне не понятно но как получить все данные из таблицы (finished_goods) сравнивая номер полученный из массива $arr с id таблицы (finished_goods)
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
23.06.2015, 19:30
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
$resultat_2 = mysql_query("SELECT * FROM finished_goods WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
      $arr = unserialize($array['customer_order']);//Здесь массив с id другой таблицы
      echo '<div class="css_1" style="width: 1074px; height: 382px; margin-top: 3px;">'.'бла-бла'.'</div>';
      while($array_2 = mysql_fetch_assoc($resultat_2))
      {
             как мне здесь получить данные по id из массива $arr ???  вот так :
 
foreach ( $arr  as $yo){  
 
if($arr['id']=== $array_2['id'])  
echo ''ку-ку!" ;
 
 
 }
 
      }
}
Добавлено через 4 минуты
имхо, это уже "лапша"
а вообще , здесь конечно имеет смысл подумать над SQL запросом, который сразу все данные получит.
не думал сделать так ? чтобы в поле 'customer_order' не хранился массив . тогда все данные легко получаются через JOIN .
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
23.06.2015, 23:27  [ТС]
вложенный цикл выводит только 1 раз ?
PHP
1
2
3
4
5
6
7
8
9
$arr = unserialize($array['customer_order']);
while($array_2 = mysql_fetch_assoc($resultat_2))
{
       foreach ($arr as $yo)
       {
    if($yo === $array_2['id'])                       
    echo $array_2['id'];
       }
}
0
 Аватар для m1ndgr3p
23 / 23 / 1
Регистрация: 31.05.2013
Сообщений: 108
23.06.2015, 23:54
не могу понять потуги, не проще ли найти в мускуле нужные idи потом их сравнить?
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
24.06.2015, 00:13
тут, как я понял, в поле БД хранится сразу МАССИВ с этими ID. Выше я писал, что хорошо бы реорганизовать БД и получать все что надо без танцев с бубном. Но , может , БД меня нельзя?

Добавлено через 2 минуты
Цитата Сообщение от Афган Посмотреть сообщение
1

PHP
1
2
3
4
5
6
7
8
9
$arr = unserialize($array['customer_order']);
while($array_2 = mysql_fetch_assoc($resultat_2))
{
 foreach ($arr as $yo)
 {
 if($yo === $array_2['id']) 
 echo $array_2['id'];
 }
}
при каждом новом значении в $array_2 массив $arr перебирается с начала до конца .
0
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
24.06.2015, 00:21  [ТС]
тут, как я понял, в поле БД хранится сразу МАССИВ с этими ID
Всё верно вот и не могу понять как вывести
Но , может , БД меня нельзя?
База одна таблицы в базе разные

Добавлено через 6 минут
не могу понять потуги, не проще ли найти в мускуле нужные idи потом их сравнить?
Я только за, вот в первые циклы как их расставить ?
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
24.06.2015, 00:22
если в $arr только id=>$id, можно короче написать, как-то так :

PHP
1
2
3
4
5
6
7
$arr = unserialize($array['customer_order']);
while($array_2 = mysql_fetch_assoc($resultat_2))
{
  if( in_array( $array_2['id'],$arr) 
  echo $array_2['id'];
 
}
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
24.06.2015, 06:32  [ТС]
Вы чуть чуть меня не поймёте наверно, что мне нужно.
Допустим есть заказы их 5 шт. они записаны в таблицу допустим (1) в базе. и в строке в одной из ячеек сохранён массив с номерами id товаров.
Я вывожу в первом цикле заказ из таблицы (1) и массив тоже, допустим в массиве 3 номера id.
Мне нужно вывести во вложенном цикле 3 товара из таблицы (2)
Далее круговорот заново 2 заказ допустим в нём 1 товар
Далее 3 заказ в нём 4 товара и т.д.

Добавлено через 13 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
while($array = mysql_fetch_assoc($resultat))
{
$arr = unserialize($array['customer_order']);//Здесь массив с номерами id другой таблицы
echo  '<div class="css_1" style="width: 1074px; height: 382px; margin-top: 3px;">'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Населённый пункт доставки : '.$array['city'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Способ доставки : '.$array['shipping_Method'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Способ оплаты : '.$array['payment_method'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Фамилия : '.$array['surname'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Имя : '.$array['name'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Отчество : '.$array['patronymic'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Номер телефона : '.$array['phone_number'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'E-mail : '.$array['email'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Адрес : '.$array['address'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Логин : '.$array['login'].'</div>'.
         '<div align="left" style="padding: 10px 0px 0px 10px; font-size: 20px;">'.'Дата и время : '.$array['orders_date'].'</div>'.
         '</div>';
}
Как мне вывести товар из другой таблицы базы по полученным из массива номерам id в этот же (echo) ?

Добавлено через 5 часов 1 минуту
Этот код выводит работает но выводит только 1 раз почему ?
Мне нужно чтобы при начале так скажем родителя цикла вложенный цикл повторялся и в остальных случаях.
Получается так будто в остальных заказах нет товаров есть только в первом?
PHP
1
2
3
4
5
6
7
$arr = unserialize($array['customer_order']);
while($array_2 = mysql_fetch_assoc($resultat_2))
{
  if( in_array( $array_2['id'],$arr) 
  echo $array_2['id'];
 
}
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
24.06.2015, 12:39
брр))))
ну давай разбираться по пунктам

вот этот запрос : $resultat = mysql_query("SELECT * FROM orders WHERE id" , $db); корректный?
чтобы получить ВСЕ заказы он должен быть либо :
"SELECT * FROM orders WHERE 1" , либо "SELECT * FROM orders"

если ты получаешь конкретный заказ , то
"SELECT * FROM orders WHERE id=".$id либо "SELECT * FROM orders WHERE id={$id} " либо еще как то....
у тебя "SELECT * FROM orders WHERE id" , что возвращает этот запрос?
1
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
24.06.2015, 13:41  [ТС]
PHP
1
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
от сюда я получаю все заказы (не товары) и массив с номерами id товаров чтобы получить конкретные заказанные товары пользователем.

PHP
1
$resultat_2 = mysql_query("SELECT * FROM finished_goods WHERE id" , $db);
А здеси сами товары которые нужно получить к каждому заказу по полученному массиву с номерами id из
PHP
1
$resultat = mysql_query("SELECT * FROM orders WHERE id" , $db);
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
24.06.2015, 14:21
меня смущает сам запрос "SELECT * FROM orders WHERE id" ты попробуй вбить его в PHPMyadmin , он тебе ничего не вернет
0
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
24.06.2015, 16:08  [ТС]
меня смущает сам запрос "SELECT * FROM orders WHERE id" ты попробуй вбить его в PHPMyadmin , он тебе ничего не вернет
Сделал вот так а возвращало тоже самое что (WHERE id) что (ORDER BY id ASC)
PHP
1
SELECT * FROM orders ORDER BY id ASC
Вы правы надо писать нормально, но я же новичок.
Но всё работало что странно для вас наверно
0
28 / 28 / 8
Регистрация: 23.04.2013
Сообщений: 145
24.06.2015, 16:35
если новичок, тем более, надо сразу устранять ошибки. я и сам новичок ) только чуть более продвинутый.
ты оба запроса исправил?

напиши весь код , который ты сейчас пробуешь запустить. как он выглядит сейчас?
0
-48 / 3 / 2
Регистрация: 12.01.2015
Сообщений: 182
24.06.2015, 16:43  [ТС]
Мне кажется кажется что вложенный (while) запоминает пройденный круг, и полученные новые номера id (хотя они могут быть такими же что и в первом заказе) из
PHP
1
$arr = unserialize($array['customer_order']);
просто игнорирует что свойственно циклу.
Напрашивается вопрос можно ли c помощью php поле прохода (while-ом) по массиву стирать так скажем память у (while)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2015, 16:43
Помогаю со студенческими работами здесь

Цикл в Цикле
У меня проблемма опять с циклами Необходимо сделать так во время одного цикла она проверяла в цикле наличие совпадений с $_SESSION если...

Как объединить 2 операции в один цикл PHP
Нужно 1)выделить*жирным*шрифтом*людей,*имеющих*высшее*образование 2)закрасить*зеленым*фоном*строки*с*новичками*(стаж работы...

Как в php цикл вставить код на java script?
//Выводим данные из базы mysql $resultat = mysql_query(&quot;SELECT * FROM chat&quot;,$db); $array = mysql_fetch_array($resultat); do { ...

Как заставить цикл, создать массив три раза PHP
Например $n=3, то массив должен быть от 0 до 2 и должен иметь три массива (с разными цифрами) тоже от 0до 2.

Как мне вставить в цикл PHP скрипта HTML-ссылку?
Подскажите как мне вставить в цикл PHP скрипта HTML-ссылку скрипт на подобие: $ii=5; $i=0; ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru