循环数据库查询

时间:2014-09-10 13:49:08

标签: php mysql database

我想通过使用从另一个数据库表中获取的变量来显示一个数据库表的结果,如下所示:

mysql_select_db($database_Connection, $Connection);
$query_Recordset_bids = "SELECT * FROM bids WHERE bidder = '$userName'";
$Recordset_bids = mysql_query($query_Recordset_bids, $Connection) or die(mysql_error());
while ($row_Recordset_bids = mysql_fetch_array($Recordset_bids)) {
$totalRows_Recordset_bids = mysql_num_rows($Recordset_bids);

mysql_select_db($database_Connection, $Connection);
$query_Recordset_jobs = "SELECT * FROM jobs WHERE userID = '".$row_Recordset_bids['jobID']."'";
$Recordset_jobs = mysql_query($query_Recordset_jobs, $Connection) or die(mysql_error());
$row_Recordset_jobs = mysql_fetch_assoc($Recordset_jobs);
$totalRows_Recordset_jobs = mysql_num_rows($Recordset_jobs);
}

然后我想要输出如下表所示:

<?php if($totalRows_Recordset_jobs == 0)
echo "You have never submitted a job offer!";
else {   
?>
<table width="440" border="0" cellpadding="1" cellspacing="1" id="tablejobs">
<tr>
    <th width="40" bgcolor="#779BDC" scope="col">ID</th>
    <th width="90" bgcolor="#779BDC" scope="col">Destination</th>
    <th width="85" bgcolor="#779BDC" scope="col">Cargo</th>
    <th width="85" bgcolor="#779BDC" scope="col">Due Date</th>
    <th width="75" bgcolor="#779BDC" scope="col">Bid</th>
    <th width="65" bgcolor="#779BDC" scope="col">Status</th>
</tr>
<?php do { ?>
  <tr>
    <td height="22" bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['userID']; ?></td>
    <td bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['destination']; ?></td>
    <td bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['cargo']; ?></td>
    <td bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['due_date']; ?></td>
    <td bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['bids']; ?> kr.</td>
    <td bgcolor="#798890" scope="col">&nbsp;<?php echo $row_Recordset_jobs['status']; ?></td>
  </tr>
  <?php } while ($row_Recordset_jobs = mysql_fetch_assoc($Recordset_jobs)); ?>
 </table>
<?php
}
?>

但即使有2个或更多结果与选择查询匹配,表中也只显示了一行。

那么如何循环遍历第一个数据库表以获取多个匹配变量(jobID),我可以将其用于我的select语句到第二个数据库表,这应该显示多个结果?

1 个答案:

答案 0 :(得分:0)

我建议你简单了解一下联接。 :)

只要两个数据库都具有相同的连接/凭据,您也可以在不同的数据库上使用连接。

我不确定你是否认为你的桌子有两个数据库。

如果你只有一个数据库那么简单:

$query = 'SELECT * 
          FROM bids b 
          LEFT JOIN jobs j ON b.jobID = j.UserID 
          WHERE b.bidder = "$userName"';

如果你有两个数据库使用它,并为&lt; namedb1&gt;插入两个数据库的名称。和&lt; namedb2&gt;。

但是,请注意,这不是最明智的事情,因为您不能在不同的数据库上使用任何indizes,事务,约束或表锁。 (正如Jay Blanchard在评论中提到的那样)

$query = 'SELECT * 
          FROM <namedb1>.bids b 
          LEFT JOIN <namedb2>.jobs j ON b.jobID = j.UserID 
          WHERE b.bidder = "$userName"';

http://dev.mysql.com/doc/refman/5.1/en/join.html