首先,我编码这个,它看起来在一个表内,得到最后的10个条目,并显示它们。输出如预期的那样,是数据库中最后10个条目的列表。在一段时间内选择语句
$query = "SELECT dfid FROM downloads_downloads ORDER BY did DESC limit 10";
$dlresult = mysql_query($query);
$i=0;
$num = mysql_num_rows ($dlresult);
while ($i < $num) {
$dfid= mysql_result($dlresult,$i,"dfid");
echo "<b>filenumber:</b> $dfid <br>";
++$i;
}
但我不只是需要filenumber。我需要从另一个表的实际文件名和URL。所以我在while语句中添加了一个select语句,使用文件编号。
但由于某种原因,这段代码只显示一个文件名而不是10.我知道,从上面的代码中,它获得了全部10个文件编号。
$query = "SELECT dfid FROM downloads_downloads ORDER BY did DESC limit 10";
$dlresult = mysql_query($query);
$i=0;
$num = mysql_num_rows ($dlresult);
while ($i < $num) {
$dfid= mysql_result($dlresult,$i,"dfid");
$query2 = "SELECT file_name, file_name_furl FROM downloads_files WHERE file_id = '$dfid'";
$dlresult2 = mysql_query($query2);
$dlfile_name= mysql_result($dlresult2,$i,"file_name");
$dlfile_name_furl= mysql_result($dlresult2,$i,"file_name_furl");
echo "filenumber: $dfid <br>"; //Shows 10, as expected.
echo "filename: $dlfile_name - $dlfile_name_furl <br>"; //Shows only 1?
++$i;
}
我可以手动执行sql语句并从表中检索file_name和file_name_furl。所以数据是正确的。 PHP不喜欢while语句中的select?
为什么不重写你的SQL和加入? – Luceos