2012-07-14 48 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