gpt4 book ai didi

php - 使用php将数据合并到一列mysql中

转载 作者:行者123 更新时间:2023-11-30 22:51:04 25 4
gpt4 key购买 nike

美好的一天,我正在建立一个食谱网站,我试图显示一个含有多种成分的食谱,但成分在一个单独的表中,所以当我运行查询时,如果我有三种成分,则食谱 ID 将出现三次其他数据,因为成分列仅由一个条目填充...是否有合并这些条目的方法?

这是我的代码和指向数据如何显示的图像的链接..任何帮助都会很棒

[img] http://forums.trinituner.com/upload/data/62/all食谱重复.jpg[/img]

我的代码

         $db=mysql_select_db("tasteofhome");



$query = "select RECIPES.recipe_ID,RECIPES.recipe_name,RECIPES.recipe_author,RECIPES.cook_time,RECIPES.stages_description, INGREDIENTS.ingredients_name, USERS.user_name from
RECIPES,USERS,RECIPE_INGREDIENTS,INGREDIENTS where USERS.user_ID=RECIPES.user_ID AND
RECIPES.recipe_ID = RECIPE_INGREDIENTS.recipe_ID
AND RECIPE_INGREDIENTS.ingredients_ID = INGREDIENTS.ingredients_ID
";

$result = mysql_query ($query);

if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}


while ($rows = mysql_fetch_array ($result))
{ //begin of while loop
?>
<tr>
<td> <?php echo $rows [0]; ?> </td>
<td> <?php echo $rows [1]; ?> </td>
<td> <?php echo $rows [2]; ?> </td>
<td> <?php echo $rows [3]; ?> </td>
<td> <?php echo $rows [4]; ?> </td>
<td> <?php echo $rows [5]; ?> </td>
<td> <?php echo $rows [6]; ?> </td>

</tr>

<?php

} //end of while loop


?>

最佳答案

您可以通过使用 group_concat 的聚合查询来连接 recipesusers 表将配料加入逗号分隔的字符串:

SELECT r.recipe_ID, 
r.recipe_name,
r.recipe_author,
r.cook_time,
r.stages_description,
gi.ingredients_names,
u.user_name
FROM RECIPES r
JOIN USERS u ON u.user_ID = r.user_ID
JOIN (SELECT ri.recipe_ID,
GROUP_CONCAT(i.ingredients_name) AS ingredients_names
FROM RECIPE_INGREDIENTS ri
JOIN INGREDIENTS i ON ri.ingredients_ID = i.ingredients_ID
GROUP BY recipe_ID) gi ON gi.recipe_ID = r.recipe_ID

关于php - 使用php将数据合并到一列mysql中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com