我仍然是一个php新手...如果这是一个愚蠢的问题,我道歉。
我有一个数值数组('views'),每个'视图'特定于一个视频。我想将顶级'views'输出到表格(html)的单元格中。无论我的列表是升序还是降序,我仍然只能看到列表的第一个数字(但是正确的数字)(第一行中的$ views1)。这是我的代码:
<? php //lots of code, followed by
include 'connect.php';
$views=mysql_fetch_array(mysql_query("SELECT video.views FROM video ORDER by
video.views DESC LIMIT 10"));
list($views1,$views2,$views3,$views4,$views5,$views6,$views7,$views8,$views9,$views10)
= $views;
?>
<html>
<body>
<table>
<tr><td><?php echo $views1 ?></td></tr>
<tr><td><?php echo $views2 ?></td></tr>
. //My actual code has 10 rows going from $views1 to $views10
.
.
<tr><td><?php echo $views10 ?></td></tr>
</body>
</html>
我只是看不出有什么问题...感谢您的帮助!
答案 0 :(得分:0)
使用
var_dump($views);
在list(...)语句之前调试它。可能是$ views没有像你想象的那样填充。
答案 1 :(得分:0)
此代码应该有效:
<?php //lots of code, followed by
include 'connect.php';
$q=mysql_query("SELECT video.views FROM video ORDER by video.views DESC LIMIT 10");
$views=array();
while ($views[]=mysql_fetch_array($q));
?>
<html>
<body>
<table>
<?php
foreach ($views as $view)
echo '<tr><td>'.$view['views'].'</td></tr>';
?>
</table>
</body>
</html>
不要忘记你不应该写重复的代码,循环就在那里。
答案 2 :(得分:0)
这是因为mysql_fetch_array
提取一行,所以即使以这种方式分配变量列表,也只会设置结果中的colunms - 在您的情况下为1。使用类似的东西:
$res = mysql_query(...);
while ($arr = mysql_fetch_array($res)) $views[] = $arr[0];
<tr><td><?=$views[0]?></td></tr>
...
顺便说一下,不推荐使用mysql扩展,而是使用mysqli。