0

我正在尝试在屏幕上显示具有特定主题的图像。我有 5 张具有相同主题的图像,它只显示一张图像。如果我在数据库中更改图像的主题,则会出现下一张带有我尝试调用的主题的图像。

function selectSubject($subject){
        $showSubject = mysql_query("SELECT name FROM images WHERE subject = '$subject'");
        while($showSubject = mysql_fetch_array($showSubject)){
                $source_subject_trees = $showSubject['name'];
                echo "<img class=\"subject_images\" src='img/$source_subject_bomen'></>";
        }
    };
4

2 回答 2

3

mysql_query()返回一个结果句柄。然后,您通过在 while() 循环中重新分配该句柄来踩遍该句柄:

$showSubject = mysql_query(...);

while($showSubject = msyql_fetch_array($showSubject)) {
      ^^^^^^^^^^^^---here

mysql_fetch_array()返回一行数据的数组。由于您在存储实际查询结果句柄时分配给SAME变量,因此您破坏了结果句柄......最终无法获取更多数据,因为句柄已经消失。

于 2013-10-21T17:07:49.667 回答
0
  1. mysql_query您可以使用GROUP BY subject仅获得不同的结果
  2. mysql_query您可以使用DISTINCT(name)在选择时间上获得不同的结果

根据您的有效结果获得任何 aboue 提及选项。

于 2013-10-21T17:21:48.270 回答