这个工作正常#1但是当我尝试在第二个表上关联其他表时,它会出错
注意:第30行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的未定义索引:recipe.id
注意:未定义的索引:第31行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的recipe.ingredientid RecipeID: IngredientID:
注意:第30行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的未定义索引:recipe.id
注意:未定义的索引:第31行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的recipe.ingredientid RecipeID: IngredientID:
注意:第30行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的未定义索引:recipe.id
注意:未定义的索引:第31行的C:\ xampp \ htdocs \ hyukies \ public \ samples.php中的recipe.ingredientid RecipeID: 成分ID:
<?php
$sql = mysqli_query($connection, "SELECT id, location FROM location");
$userinfo = array();
while ($row_user = mysqli_fetch_assoc($sql))
$userinfo[] = $row_user;
foreach ($userinfo as $user) {
echo "ID: {$user['id']}<br />"
. "Location: {$user['location']}<br /><br />";
}
?>
这个没有工作的错误问题请帮忙......
<?php
$sql_2 = mysqli_query($connection, "SELECT recipe.id, recipe.ingredientid, ingredients.id, ingredients.quantity, ingredients.`name` FROM recipe INNER JOIN ingredients ON ingredients.id = recipe.ingredientid");
$userinfo_2 = array();
while ($row_user_2 = mysqli_fetch_assoc($sql_2))
$userinfo_2[] = $row_user_2;
foreach ($userinfo_2 as $user_2) {
echo "RecipeID: {$user_2['recipe.id']}<br />"
. "IngredientID: {$user_2['recipe.ingredientid']}<br /><br />";
}
?>
答案 0 :(得分:0)
关联数组中的键只包含列名,而不包含表名。所以它应该是:
echo "RecipeID: {$user_2['id']}<br />"
. "IngredientID: {$user_2['ingredientid']}<br /><br />";
答案 1 :(得分:0)
从&#39;名称&#39;删除后面的刻度线在您的查询中
$sql_2 = mysqli_query($connection, "SELECT recipe.id, recipe.ingredientid, ingredients.id, ingredients.quantity, ingredients.`name` FROM recipe INNER JOIN ingredients ON ingredients.id = recipe.ingredientid");
应该是
$sql_2 = mysqli_query($connection, "SELECT recipe.id, recipe.ingredientid, ingredients.id, ingredients.quantity, ingredients.name FROM recipe INNER JOIN ingredients ON ingredients.id = recipe.ingredientid");
另外,删除&#39;配方&#39;来自$user_2['recipe.id']
。它应该是$user2['id']
,但不清楚你得到的是哪个ID。要单独选择它们,您可以使用&#39; AS&#39;在您的查询中为他们提供唯一标识符。
SELECT recipe.id AS id1, ingedients.id AS id2
答案 2 :(得分:0)
表名不包含在结果集中,因此列仅命名为id
,ingredientid
等。您确实应该使用as
来命名它们,例如{{1 }}。没有关于recipe.id as recipeid
字段的警告,PHP会将它们映射到一起。
你真的不需要两个id字段,因为你也有成分,但很可能你会在id
字段得到ingredients.id,因为它是后者。
因此请将您的查询更新为
id
然后使用recipeid获取recipe.id。这总是会更好,因为很清楚你得到的是什么。