从WHILE循环中的另一个表中获取变量

从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循环中的另一个表中获取变量

+2

您应该使用JOIN而不是单独的查询。 – Brad 2012-02-07 03:10:00

+0

geez,谢谢。认为这会很容易。感谢Brad – 2012-02-07 03:15:22

不太确定你想要做什么......但试试这个。

替换此:

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>"; 

此外,一定要仔细检查,并确保您从正确的数据库中提取,它是稀少,你在呼唤正确的表名等...

+0

感谢Ernest的回复。布拉德击中了头部。我只需要访问不在SELECT语句中的表中的列。 JOIN做了诀窍 – 2012-02-07 03:27:45

+0

哇!自从我回答这个问题已经有一段时间了。但我很高兴你明白了:) – 2013-10-13 03:14:00