2011-08-05 32 views
0

我會從問題開始。我通過調用mysql_fetch_assoc()來顯示行中的所有字段。每一次新的傳球給我新的行加上舊的行值。它複合每次傳球。我已經嘗試了很多東西,並瀏覽了很多帖子和論壇,並沒有完全找到我需要解決的問題。任何幫助表示讚賞。mysql_fetch_assoc()的結果將舊值複合到新值中。有任何想法嗎?

編輯:對不起,但我張貼問題後,縮進變得混亂。

下面是MySQL表腳本:

CREATE TABLE pay_hours 
(
    _key  int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    _userNumber  int(11), 
    _hoursWorked double 
); 

CREATE TABLE pay_dates 
(
    _key  int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    _userNumber int(11), 
    _dateWorked date  
); 

這裏的查詢:

$query = "SELECT h._userNumber, d._dateWorked, h._hoursWorked FROM pay_hours h, pay_dates d WHERE d._userNumber=h._userNumber ORDER BY d._dateWorked DESC"; // gets the user, hours and dates and displys most recent dates first. 

$result = $keyFrameObject->Execute($query); // wrapper for mysql_query() 

這裏的循環:

$row = mysql_fetch_assoc($result); 

while ($row) 
{ 
    $table .= "<tr>"; 

    foreach ($row as $field) 
    { 
     $table .= "<td>" . $field . "</td>"; 
    } 

    $table .= "</tr>"; 
    $row = mysql_fetch_assoc($result); 
} 

這是一個PHP頁面,我最終會呼應表用這些數據創建。我輸入dateWorked和hoursWorked的值,同時使用相同的userNumber值進行測試。下面是一些示例輸入和輸出(使用var_dump($row)):

輸入:

date = 2011-08-05 
hours = 1 

輸出:

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } 

現在這一頁貼後背,我會在一組新值的輸入:

輸入:

date = 2011-08-04 
hours = 5 

輸出(未格式化的):

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "5" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "1" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "5" } 

輸出(格式化):

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "5" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "1" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "5" } 

每當在輸入的值,並通過代碼運行,它進一步化合物。我相信問題在於循環,但我不確定。不知何故,$行在回帖後保持價值。

再次感謝您的幫助,並讓我知道是否需要更多信息。

+0

你在哪裏做var_轉儲?如果它在while循環中,那麼你顯示的輸出是預期的。在while循環完成後,var_dump($ table)會顯示什麼? – vascowhite

回答

0

問題解決。答案在下面的評論中。謝謝您的幫助。

我已經想通了。由於表格的設計,它會插入兩次,這會導致複合。我把所有東西都改成了一張桌子,模糊性消失了。感謝您所有的幫助。我不知道如何標記這個問題已解決,但是如果mods正在觀看,你能幫助一個兄弟嗎? - Matt 9小時前

1

更改$ table。=「」;到$ table =「」;

。=將保留前面循環中$ table的值。

+0

我明白我所做的。謝謝。 – Matt

+0

@matt,沒問題。請記住接受答案並投票。歡迎來到Stackoverflow。 – vascowhite

+0

對不起,我認爲這會有所幫助,但事實並非如此。 「。=」必須在那裏,因爲它被附加到「

」,然後是「
」,然後:echo $ table; – Matt

相關問題