从WHILE循环中的另一个表中获取变量
<?php
$id = $_SESSION['user_id'] ;
echo "<form method='post' action='#'>";
echo "</select>
<p>Which Hospital Would You Like to Submit To?</p>";
$queryitem = "SELECT * FROM vendor_hospital WHERE vendor_hospital.user_id = '$id' AND vendor_hospital.approval_status = '1'" or die('MYSQL error: ' . mysql_error());
if ($result = mysql_query($queryitem)) {
if ($success = mysql_num_rows($result) > 0) {
echo "<select name='hospital_name'>";
echo "<option>-- Select A Facility --</option>";
while ($row = mysql_fetch_array($result))
echo "<option value='$row[manufacturer_id]'>$row[manufacturer_id]</option>";
echo "</select><br><br>";
} else {
echo "No results found.";
}
} else {
echo "Failed to connect to database.";
}
echo "<input type='submit' value='Submit' name='submit' class='button' /></form>";
?>
由于某种原因,我卡在这里。我只是想让制造商名称显示在我的选项中而不是manufacturer_id中。制造商名称是另一个表中的外键,因此我不能简单地在我的选项标签中调用$row[manufacturer_id]
。我应该在这里做什么?我唯一的想法是在选项标签内为每个manufacturer_id列出一个值,但我相信这是一个矫枉过正的问题。有人能指出我是否有一个比这更优雅的解决方案的正确方向?从WHILE循环中的另一个表中获取变量
不太确定你想要做什么......但试试这个。
替换此:
while ($row = mysql_fetch_array($result))
echo "<option value='$row[manufacturer_id]'>$row[manufacturer_id]</option>";
echo "</select><br><br>";
有了这个:
while ($row = mysql_fetch_array($result)){
echo "<option value='".$row['manufacturer_id']."'>".$row['manufacturer_id']."</option>";
}
echo "</select><br><br>";
此外,一定要仔细检查,并确保您从正确的数据库中提取,它是稀少,你在呼唤正确的表名等...
感谢Ernest的回复。布拉德击中了头部。我只需要访问不在SELECT语句中的表中的列。 JOIN做了诀窍 – 2012-02-07 03:27:45
哇!自从我回答这个问题已经有一段时间了。但我很高兴你明白了:) – 2013-10-13 03:14:00
您应该使用JOIN而不是单独的查询。 – Brad 2012-02-07 03:10:00
geez,谢谢。认为这会很容易。感谢Brad – 2012-02-07 03:15:22