Mysql select . php

Рейтинг: 0Ответов: 2Опубликовано: 03.12.2014
SELECT id_prod
FROM  `ordered_products` 
WHERE id_order =10

результатом является набор чисел 1 2 3 4 то есть id_prod из разных строк,где id_order=10; как вывести такой массив в php?

$result = mysql_query("SELECT id_prod
FROM  `ordered_products` 
WHERE id_order = 10");
$my =  mysql_fetch_array($result);

Ответы

▲ 1Принят

Недавно узнал про такую функцию GROUP_CONCAT().

Вот запрос

SELECT GROUP_CONCAT( DISTINCT id_prod SEPARATOR ',' ) as id_prod
FROM ordered_products
WHERE id_order=10

запрос вернет 1 строку, в которой через запятую будут перечислены все id_prod.
DISTINCT - уберет из заказа дублирующие продукты.

Для преобразования результата в массив - просто

$arr_prod=explode(',',$row['id_prod']);
▲ 1

var_dump($my) или print_r($my) функции, наверное, если я правильно понял вопрос. Или через foreach перебрать.

Вот какой пример на php.net:

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Имя: %s", $row[0], $row[1]);
}