值不显示在mysql_fetch_array()中

时间:2012-07-14 15:53:21

标签: php mysql

<?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'];

作为上面给出的代码,试图从指定的列名中获取值,问题是它在echo中的那个地方什么也没有显示,而我在使用print_r()时得到的结果与我想要的完全一致。 可能是什么问题?

1 个答案:

答案 0 :(得分: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'];
        }