查询显示条目数相同的结果

时间:2011-05-02 21:32:37

标签: php repeat

我正在使用下面的代码,并且对于每个条目,它重复最近的条目而不是显示所有条目。

代码:

$sql="SELECT theday.day_id, actornames.actorname, 
    theday.personwhois, actornames.whyactor,    
    theday.daydate FROM theday LEFT JOIN actornames 
    ON theday.personwhois = actornames.actor_id WHERE 
    actornames.group_id = '$gi' ORDER BY theday.id DESC";  

    $result=mysql_query($sql);

    $query = mysql_query($sql) or die ("Error: ".mysql_error());

    $result = mysql_query($sql);

    if ($result == "")
    {
    echo "";
    }
    echo "";


    $rows = mysql_num_rows($result);

   if($rows == 0)
   {
   print("");

    }
    elseif($rows > 0)
     {
 while($row = mysql_fetch_array($query))
 {

 // All other fields I am using the $variable method below to show them
 $day = mysql_result($result,$i,"day_id");

示例:

如果我有十个唯一的行,则会使用最新的条目重复十行:

 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives
 Angelina Jolie, Wanted, Original Sin, Taking lives

3 个答案:

答案 0 :(得分:1)

您是否从行变量输出结果?

首先尝试清理代码,下一个示例代码应该执行查询的基本部分。

$sql="SELECT theday.day_id, actornames.actorname, 
theday.personwhois, actornames.whyactor,    
theday.daydate FROM theday LEFT JOIN actornames 
ON theday.personwhois = actornames.actor_id WHERE 
actornames.group_id = '$gi' ORDER BY theday.id DESC";  

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{
   print_r($row);
   // additional formatting
}

答案 1 :(得分:1)

您的代码存在多个问题。

a)不要运行查询三次,也不要存储结果资源的两个副本($query$results是重复的)。这是对资源的巨大浪费。

b)在尝试从$query提取数据时,您正在循环$result(在您的while循环中)。 $result的内部指针未更新,因此您永远不会从第一行前进。同样,只运行一次查询就可以解决这个问题。

c)mysql_result的第二个参数是行的数字偏移量。您正在使用$i,它未定义,因此其默认值为0.将其更改为$row并未解决您的问题,因为$row是一个数组。你需要使用一个柜台。或者,更好的是,因为您已经在获取数组,所以不要使用mysql_result句点,因为它效率低且冗余。

$sql = ...
$result = mysql_query($sql) or die ("Error: ".mysql_error());
$rows = mysql_num_rows($result);

if($rows > 0) 
{
    while($row = mysql_fetch_assoc($result))
    {
        $day = $row['day_id'];
        // ...
    }
}

答案 2 :(得分:0)

我只需要使用$ row ['row_name'];而不是我拥有的。

相关问题