2012-07-14 46 views
0
<?php 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("audio_book"); 
    $selectData = "SELECT * FROM user, library, audios 
         WHERE user.user_id = library.user_id AND library.library_id = audios.library_id"; 
    $result = mysql_query($selectData) or die(mysql_error()); 
    //print_r(mysql_fetch_array($result)); // it works fine here 
    while($row = mysql_fetch_array($result)); 
     echo $row['user_name']."-".$row['library_name']."-".$row['filename']; 

作爲上面給出的代碼m試圖從指定的列名獲取值,問題是它在echo中沒有顯示任何東西,而我得到的結果和我使用print_r時完全一樣(); 可能是什麼問題?值不顯示在mysql_fetch_array()

+2

什麼是'的print_r($行)'輸出? – PeeHaa 2012-07-14 15:56:13

回答

0

請嘗試此查詢。它使用JOIN語句。

SELECT * FROM user INNER JOIN library ON user.user_id=library.user_id INNER JOIN audios ON library.library_id=audios.library_id 

請參見下面的代碼(注意我沒有做一個改變你while語句)

<?php 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("audio_book"); 
    $selectData = "SELECT * FROM user INNER JOIN library ON user.user_id=library.user_id INNER JOIN audios ON library.library_id=audios.library_id"; 
    $result = mysql_query($selectData) or die(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
     echo $row['user_name']."-".$row['library_name']."-".$row['filename']; 
    } 

我建議考慮改用MySQLi的。我已經制定了一個如何通過下面的mysqli完成這個例子。

程序(因爲你當前使用的程序邏輯):

<?php 
     $connect = mysqli_connect("localhost", "root", "password", "audio_book"); 
     $selectData = "SELECT * FROM user INNER JOIN library ON user.user_id=library.user_id INNER JOIN audios ON library.library_id=audios.library_id"; 
     $result = mysqli_query($connect,$selectData) or die(mysqli_error($connect)); 
     while($row = mysqli_fetch_array($result)){ 
      echo $row['user_name']."-".$row['library_name']."-".$row['filename']; 
     } 
+0

很好的幫助!謝謝,工作!:) – Saqib 2012-07-14 18:13:36