2011-08-05 4 views
0

문제부터 시작하겠습니다. mysql_fetch_assoc() 호출을 반복하면서 모든 필드를 표시합니다. 새로운 패스가 나올 때마다 새로운 행에 이전 행 값도 더해집니다. 그것은 각 패스를 합성합니다. 나는 많은 것들을 시도하고 많은 게시물과 포럼을 훑어 보았고 그것을 고칠 필요가있는 것을 찾지 못했습니다. 어떤 도움을 주셔서 감사합니다.mysql_fetch_assoc()의 결과는 이전 값을 새로운 값으로 합성합니다. 어떤 아이디어?

편집 : 죄송하지만 질문을 게시 한 후에 들여 쓰기가 엉망이됩니다. 루프 여기

$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() 

것 : 쿼리 여기

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

것 :

다음은 MySQL의 테이블 스크립트의

$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 페이지이고 나는 결국 테이블을 메아리 이 데이터로 생성됩니다. 테스트 목적으로 동일한 userNumber 값을 사용하는 동안 dateWorked 및 hoursWorked 값을 입력합니다. 여기에 (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" } 

이제 페이지를 다시 게시하고 I 값의 새로운 세트에 입력합니다 :

입력 :

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" } 

I 값에 입력하고, 코드를 실행할 때마다, 그것은 상기 화합물. 나는이 문제가 루프라고 생각하지만 확실하지 않다. 어떻게 든 $ 행은 게시물 뒤로 값을 유지하고 있습니다.

도움을 다시 주셔서 감사 드리며 더 많은 정보가 필요한지 알려주세요.

+0

어디에서 var_ 덤프를하고 있습니까? while 루프 내부에 있으면 출력 할 내용이 예상됩니다.while 루프가 완료된 후에 var_dump ($ table)에 표시되는 내용은 무엇입니까? – vascowhite

답변

0

문제가 해결되었습니다. 답은 아래의 주석에 있습니다. 도와 주셔서 감사합니다.

알아 냈습니다. 테이블을 디자인하기 때문에 두 번 삽입하면 복합물이 생깁니다. 나는 모든 것을 하나의 테이블로 바꾸었고 모호함이 사라졌습니다. 모든 도움을 주셔서 감사합니다. 이걸 해결 방법으로 표시하는 방법을 모르겠지만 개조자가보고 있다면 형제를 도울 수 있습니까? - 매트 9 시간 전

1

변경 $ table. = ""; ~ $ table = "";

. =은 이전 루프에서 $ table의 값을 유지합니다.

+0

나는 내가 한 것을 봅니다. 감사. – Matt

+0

@matt, 문제가 없습니다. 답변을 수락하고 투표하는 것을 잊지 마십시오. Stackoverflow에 오신 것을 환영합니다. – vascowhite

+0

미안하지만 도움이 될 것이라고 생각했지만 그렇지 않았습니다. . "="

"뒤에 추가되고"
"이 붙어 있기 때문에 거기에 있어야합니다. echo $ table; – Matt

관련 문제