<?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()时得到的结果与我想要的完全一致。 可能是什么问题?
答案 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'];
}