2014-09-10 90 views
0

我想通過使用可變牽強從另一個數據庫中的表像這樣顯示一個數據庫表中的結果:遍歷數據庫查詢

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個或更多結果與選擇查詢匹配。

因此,我怎麼通過的第一個數據庫表來獲得多個匹配的變量(作業ID),我可以用我的select語句第二個數據庫表,其中應顯示多個結果循環?

+0

你真的可以使用JOIN查詢,而不是使用PHP來這裏嘗試繁重。強制性的PSA將從'mysql_'函數更改爲'mysqli_'或'PDO' – 2014-09-10 13:53:30

回答

0

我建議你簡單瞭解一下連接。 :)

您也可以使用不同的數據庫aslong聯接爲兩個數據庫都可以使用相同的連接/憑據。

我不知道如果我有你的權利,你有兩個數據庫的表。

如果你只有一個數據庫,它的簡單:

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

櫃面你有兩個數據庫使用,插入你的兩個數據庫的名字<namedb1>和<namedb2>。

但是,請注意,這是不這樣做,因爲你不能使用在不同的數據庫的任何indizes,交易,限制或表鎖的最聰明的事。 (如在評論中提到周杰倫布蘭查德)

$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

+0

您可以從不同的數據庫連接嗎?我不這麼認爲 – meda 2014-09-10 13:53:23

+0

OP說'數據庫表'@meda。 – 2014-09-10 13:54:15

+0

哦,但是你仍然可以通過不同的數據庫進行連接,是的。 – Steini 2014-09-10 13:55:00