2015-01-26 5 views
0

다른 문제는 내 문제와 비슷하게 조사하려고 시도했지만이 문제를 특별히 해결하지 못했습니다. 나는 mysqli를 사용하여 데이터를 선택하고이를 테이블에 표시한다. 열 table_yard은 여러 값을 가질 수 있으므로 이러한 값을 분해하여 루프로 배열로 저장 한 다음 변수 $yard_name에 결과를 저장했습니다. 그 배열에 하나 개 이상의 값이있는 경우Foreach 루프는 배열에서 하나의 값만 표시합니다.

while ($row = mysqli_fetch_assoc($get)) { 
    $yards = explode(",", $row[table_yard]); 
foreach ($yards as $yard) { 
    $yard_name = $yard . ", "; 
} 
    $table_rows .= "<tr> 
       <td>" . mdy($row[table_date]) . "</td> 
       <td>" . $yard_name . "</td> 
       </tr>"; 

문제는, 그것이 첫 번째 항목을 표시한다 : 나중에 ($get는 SQL 쿼리를 저장한다)과 같이 내 테이블의 행이 변수를 할당 . 나는 심지어 배열의 모든 값을 얻고 있었다 있는지 확인하기 위해 $yards에 디버그를 실행하고, 다음과 같이 그것입니다 :

Array (
[0] => 711 
[1] => 2793 
[2] => 988 
) 

이이 <td> 셀에 표시됩니다 것입니다,하지만 :

711, 

는 내가 그것을 표시 할 것은 이것이다 :

711, 2793, 988 

나는 그것이 신인 실수 확신합니다,하지만 난 그것을 알아낼 수 없습니다. 사전에 도움을 주셔서 감사합니다.

+1

당신은 foreach는 – Bankzilla

+0

의 모든 루프와'$의 yard_name' 변수를 덮어하고 덮어 쓰기되지 않도록 루프 전에 $yard_name을 정의하면 "('$의 yard_name = 내파를 사용하지 않는 이유 , ", explode (", ", $ row [table_yard])); – Eugen

+0

$ yard_name. = $ yard. ","; –

답변

2

테스트되지 않았지만 문제를 해결하는 데 도움이됩니다. 그것은 지속적으로

while ($row = mysqli_fetch_assoc($get)) { 
    $yards = explode(",", $row[table_yard]); 
    $yard_name = ""; 
    foreach ($yards as $yard) { 
     $yard_name .= $yard . ", "; // Add to the string instead of overwriting 
    } 
    $table_rows .= "<tr> 
     <td>" . mdy($row[table_date]) . "</td> 
     <td>" . trim($yard_name, ",") . "</td> 
    </tr>"; 
} 
+0

매력처럼 작동했습니다. 도움을 주셔서 대단히 감사합니다! –

관련 문제