2011-05-02 91 views
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); 

    $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"); 

例子:

,如果我有它重複十行與最近的條目中10個的不同行:

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 
+1

您的代碼不完整。請發佈完整的'while'循環。 – 2011-05-02 21:41:20

+0

@Felix這就是我所有。我正在使用print $變量顯示所有內容。 – AAA 2011-05-02 21:43:14

+0

@AAA:至少有兩個'}'丟失......並且您發佈的代碼不會生成此輸出。 – 2011-05-02 21:44:14

回答

1

你是從該行outputing結果變量?

試着先清理代碼,下一個示例代碼應該執行查詢的基本部分。

$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 
} 
+0

嗨,是啊,我只看到所有參賽作品的最新成績。 – AAA 2011-05-02 21:47:33

+0

然後它不是你的php代碼,但你猜我正在運行的查詢。 – Mark 2011-05-02 21:49:39

+0

是的,我需要使用$ row ['row_name']; – AAA 2011-05-02 21:51:23

0

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

+0

這不是那麼簡單,看看我的答案。 – andrewtweber 2011-05-02 22:32:22

1

您的代碼有多個問題。

a)不要運行查詢三次,也不要存儲結果資源的兩個副本($query$results重複)。這是一個巨大的資源浪費。

b)您正在循環使用$query(在您的while循環中),同時嘗試從$result中提取數據。內部指針$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']; 
     // ... 
    } 
}