2013-08-29 122 views
3

我有一個while循環獲取一行,我試圖創建一個結構,以便每行將創建2個鏈接。第一個是德語單詞,第二個是英語單詞。我得到的輸出重複,就好像該行沒有增加。我已經收窄到這一點:PHP的重複輸出

PHP:

while ($row = $database->row()->fetch()) { 
    foreach ($row as $value) { 
     $this->data .= $value . "!"; 
    } 
    list($this->pid, $this->german, $this->english) = explode("!", $this->data); 
    $this->links .= "<a href=\"#\" class=\"german $this->pid\">$this->german</a><br/><a href=\"#\" class=\"english $this->pid\">$this->english</a><br/>"; 
} 

輸出:

die Männer 
men 
die Männer 
men 
+0

什麼數據庫抽象您使用的? – Orangepill

+0

@Orangepill我正在使用PDO – user1408643

+0

嘗試獲取行數,然後設置'$ n',之後,執行'while()'循環,例如while($ n <$ rows; $ n ++) '。如果有一行,只回顯唯一一行的輸出。我是一個mysqli人,我不喜歡'foreach()'。 – VladHQ

回答

0
$row = array(); 
    while ($row = $database->row()->fetch()) { 
     $row[] = $row; 
    } 

    foreach ($row as $value) 
    { 
     $this->data .= $value . "!"; 
     list($this->pid, $this->german, $this->english) = explode("!", $this->data); 
     $this->links .= "<a href=\"#\" class=\"german $this->pid\">$this->german</a><br/><a href=\"#\" class=\"english $this->pid\">$this->english</a><br/>"; 
    } 
+0

我有一個警告「警告:爲foreach()提供的無效參數」。 – user1408643

0

我通過看鍵和基於創建變量解決了這個問題簡單的匹配字符串測試。如果任何人都可以改進我的答案,我希望聽到它。謝謝。

PHP:

while ($row = $database->row()->fetch()) { 
    while(list($key, $value) = each($row)) { 
     if ($key == "PID") { 
      $this->pid = $value; 
     } 
     if ($key == "german") { 
      $this->german = $value; 
     } 
     if ($key == "english") { 
      $this->english = $value; 
     } 
    } 
    $this->links .= "<a href=\"#\" class=\"german $this->pid\">$this->german</a><br/><a href=\"#\" class=\"english $this->pid\">$this->english</a><br/>"; 
}