循环数据库查询


Loop through database query

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

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语句,第二个表应该显示多个结果?

我建议您简单地学习连接。:)

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

我不确定我是否对你的表有两个数据库。

如果你只有一个数据库,它很简单:

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

如果您有两个数据库,请使用此选项并插入<namedb1>并且<namedb2>。

但是,请注意,这不是最明智的做法,因为您不能在不同的数据库上使用任何独立、事务、约束或表锁。(正如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