Цикл в цикле

Med-Doc

Новичок
Цикл в цикле

Здравствуйте. Возникла проблема. Заранее благодарю за помощь.
Таблица table из 7 столбцов:
idst id data1 data2 data3 data4 data5

Данные в столбцах:

35 5 Текст1 1 2 432 583
36 5 Текст2 1 2 345 483
37 5 Текст1 1 2 436 965
38 5 Текст2 1 2 123 234
39 6 Текст2 1 2 526 641

Запрос:

PHP:
$query = "select * from table where (id like '5') and (data2 like '1') and (data3 like '2')";
Нужно создать цикл с выводом следующего содержания:

Текст1 (432|583) (436|965)
Текст2 (345|483) (123|234)

Т.е. Все данные в data4 data5 совпадающие с Текст1 вывести, в одну строку и все данные data4 data5 совпадающие с Текст2 вывести в одну строку, пока не закончится цикл.

Пример цикла выводящего с повтором столбцов data1, data2, data3:

PHP:
$query = "select * from table where (id like '5') and (data2 like '1') and (data3 like '2')";
$result = mysql_query($query);
$nrez = mysql_num_rows($result);
for ($d=0; $d < $nres; $d++)
{
$row = mysql_fetch_array($result);
$data1=$row["data1"];
$data2=$row["data2"];
$data3=$row["data3"];
$data4=$row["data4"];
$data5=$row["data5"];
print "$data1 $data2 $data3 $data4 $data5";
}
Выводит:

Текст1 1 2 432 583
Текст2 1 2 345 483
Текст1 1 2 436 965
Текст2 1 2 123 234
 

dimagolov

Новичок
в SQL есть конструкция ORDER BY
еще есть GROUP BY & GROUP_CONCAT
не понимаю, при чем тут php когда все можно порешать на уровне БД, если читать маны по SQL?
 

Фанат

oncle terrible
Команда форума
Ну, не имея вообще никакой практики в программировании, полезно и средствами пхп такую задачу решить, в учебных целях.

Med-Doc
Теоретически, ты можешь сделать и двумя циклами.
а, точнее, тремя.
сначала записать из базы в массив, а потом из этого массива двумя вложенными циклами.

Но в твоем случае это совсем не обязательно.
просто выводить разный хтмл код для старых текстов и для новых.

А вот сортировать лучше, все-таки, средствами базы.
 
Сверху