我创建了一个while循环,为用户生成随机图像。每次加载页面时,while循环都会生成随机数量的图像。我想它显示10但它将产生3-10张图像。我检查了数据库,user_id
对于每个条目都是唯一的。我不知道它为什么要这样做。代码有什么问题?我还会接受一个可以指向方向(教程链接)的答案,以更好的方式重写此代码。
<?php
$query = mysql_query("SELECT `user_id` FROM `users` ORDER BY RAND() LIMIT 0, 10");
$r = 1;
while ($results_row = mysql_fetch_assoc($query))
{
$var_1 = $results_row['user_id'];
$getting_essentials = mysql_query("SELECT
`band_name`,`donated_money`,`donated_time` FROM `create_project` WHERE `user_id` =
$var_1");
$getting_results = mysql_fetch_assoc($getting_essentials);
$bandsname = $getting_results['band_name'];
if (isset($bandsname) === true) {
$donatedmoney = $getting_results['donated_money'];
$donated_time = $getting_results['donated_time'];
$var_2 = username_from_user_id($var_1);
$image_name = 'images/' . md5($var_2) . '_' . $var_1;
echo '<a href="' . $var_2 . '"><img src="' . $image_name . '" class="'.$r.'"
width="300" height="185"/></a>';
}
$r++;
}
?>
答案 0 :(得分:1)
我看到了一些潜在的问题。
首先,var_2
是什么?它似乎没有设置在任何地方。
其次,您可以获得与表中唯一用户ID一样多的图像。在我看来,这是一种尝试获取十张图片的奇怪方式。
第三,使用用户ID构建您用于图像的实际文件名。很可能并非所有文件都存在。
检查最后一点的方法是在浏览器中执行“查看源”操作。
可能你总是得到123张图片(假设你有123个不同的用户ID),但其中一些不存在。
作为一个低级调试练习,您可以插入代码来回显调试语句(HTML格式),这样您就可以看到幕后发生了什么。这通常是确定问题的最快方法。换句话说,用以下内容来代码:
$bandsname = $getting_results['band_name']; # Existing line
echo 'bandsname is "' . $bandsname . '".<br>'; # new line
通过这样做并检查输出,它会比尝试对代码进行静态分析更明显。
答案 1 :(得分:0)