У меня есть таблица «заказы», которая сохраняет все заказы, сделанные на веб-сайте. Она сохраняет данные следующим образом:Комбинирование строк MySQL с одинаковым идентификатором PHP
ID | Session_id | image | item | extra | customer_name
Дата Sample
12 | sdgfafjhsf | image1.jpg | coffee | milk | roger
13 | sdgfafjhsf | image1.jpg | muffin | jam | roger
14 | fjgjgsdfjg | image3.jpg | coffee | none | John
В настоящее время у меня есть PHP доступ к базе данных и выплевывая все списки один за другим.
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("store") or die(mysql_error()) ;
//Retrieves data from MySQL
$data = mysql_query("SELECT * FROM orders WHERE status ='ordered'") or die(mysql_error()); //Puts it into an array
while($info = mysql_fetch_array($data))
{
//Outputs the image and other data
Echo "$info[customer_name] <img src='cameras/$info[image]'/> : $info[item] with $info[extras] <br />";
}
Я идеально хочу, чтобы данные группировались по идентификатору сеанса. Таким образом, он печатает имя клиента и изображение один раз, а затем все связанные с ним элементы.
например. Роджер, кофе, молоко, сдобы, варенье
Любые идеи? Спасибо!
Вы можете использовать group_concat. "SELECT *, GROUP_CONCAT (item) AS items, GROUP_CONCAT (дополнительно) AS extras FROM orders WHERE status = 'ordered' GROUP BY Session_id" – yash7690