我是php的新手,我认为这很容易,因为我在使用php之前已经设法做了很多困难,但不知怎的,我被卡住了。感谢是否有人能够帮助我..
例如,我有三个表:
TblFood:
TblTypes:
TblLikes:
这些表只是我举行的例子,但我认为理解我想要问的内容会更容易。 因此,我需要能够根据TblLikes输出与这些类型相关的食物类型和确切名称。 例如,如果我选择id为Person_id ='1'的人,我需要输出“
第1个人喜欢:
水果
蔬菜
MEAT
等
所以基本上我需要那种类型的食物和食物的名称将基于TblLikes相互关联。
这就是我到目前为止所做的一切:
mysql_select_db($database_localhost, $localhost);
$query_likes = " SELECT TblLikes.Person_id, TblLikes.Type_ID, TblTypes.Type_name, TblLikes.Food_ID, TblFood.Food_name
FROM (TblFood RIGHT JOIN TblLikes ON TblFood.Food_ID = TblLikes.Food_ID) LEFT JOIN TblTypes ON TblLikes.Type_ID = TblTypes.Type_ID
WHERE TblLikes.Person_id = '1' ";
$likes = mysql_query($query_likes, $localhost) or die(mysql_error());
$row_likes = mysql_fetch_assoc($likes);
$totalRows_likes = mysql_num_rows($likes);
?>
<table border="1" cellpadding="5" cellspacing="5">
<tr>
<td>Types of food</td>
</tr>
<tr>
<?php for ($i = 1; $i <= sizeof($row_likes['Type_name']); $i++)?>
<td><?php echo $row_likes['Type_name'];?></td>
</tr>
<?php for ($i = 1; $i <= sizeof($row_likes['Food_name']); $i++) {
echo $row_likes[$i]['Food_name'];
}?>
</table>
提前谢谢..
答案 0 :(得分:0)
有很多方法可以做到这一点,但我建议您加入3个表并为类型添加group by子句,然后将其另存为数组。然后你应该通过数组运行foreach并从第一个查询中选择而不使用group by子句,但是使用where子句进行食物类型,然后通过另一个foreach运行单个项目。例如:
$query_type_likes = "
SELECT
TblLikes.Person_id,
TblLikes.Type_ID,
TblTypes.Type_name,
TblLikes.Food_ID,
TblFood.Food_name
FROM
(TblFood RIGHT JOIN TblLikes ON TblFood.Food_ID = TblLikes.Food_ID)
LEFT JOIN TblTypes ON TblLikes.Type_ID = TblTypes.Type_ID
WHERE
TblLikes.Person_id = '1'
GROUP BY
TblLikes.Type_ID
";
$foodType = mysql_query($query_type_likes, $localhost) or die(mysql_error());
foreach ($foodType as $food_Type_Id => $food_Type_Data)
{
$query_food_likes = "
SELECT
TblLikes.Person_id,
TblLikes.Type_ID,
TblTypes.Type_name,
TblLikes.Food_ID,
TblFood.Food_name
FROM
(TblFood RIGHT JOIN TblLikes ON TblFood.Food_ID = TblLikes.Food_ID)
LEFT JOIN TblTypes ON TblLikes.Type_ID = TblTypes.Type_ID
WHERE
TblLikes.Person_id = '1' AND
TblLikes.Type_ID = '".mysql_real_escape_string($food_Type_Id)."'
";
$query_food_likes = mysql_query($query_likes, $localhost) or die(mysql_error());
$html = "<ul>
<li>$food_Type_Data['Type_name']
<ul>";
foreach ($query_food_likes as $food_likes_Id => $food_likes_Data)
{
$html .= "
<li>$food_likes_Data['Food_name']</li>
}
$html .= "
</ul>
</li>
</ul>";
}
echo ($html);