2012-11-09 3 views
-3

여기 내 코드가 있으며 결과가 나옵니다. 문제는 내 db 테이블에 한 행을 5 번 나열합니다. 아이디, 이름, 이메일, 회사 및 제목이 있습니다. 결과를 한 번 표시하려면 어떻게해야합니까?Foreach 루프가 너무 많이 반복됩니다.

$sql = "SELECT * FROM `newsletter`"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)) { 
    foreach ($row as $key => $value) { 
     $DATA .= " 
      <div id='contentBox'> 
      Name: $row[Name]<br /> 
      Email: $row[Email]<br /> 
      Company: $row[Company]<br /> 
      Title: $row[Title]<br /> 
      <br /> 
      </div> 
     "; 
    } 
} 
+0

[** 새 코드 **] (http://bit.ly/phpmsql)에는 mysql_ * 함수를 사용하지 마십시오. 그들은 더 이상 유지 관리되지 않으며 [비추천 프로세스] (http://j.mp/Rj2iVR)가 시작되었습니다. [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). –

+0

정보 주셔서 감사합니다. – wowzuzz

답변

6

foreach 루프를 제거하면 필요하지 않습니다.

while ($row = mysql_fetch_assoc($result)) { 
     $DATA .= " 
      <div id='contentBox'> 
      Name: $row[Name]<br /> 
      Email: $row[Email]<br /> 
      Company: $row[Company]<br /> 
      Title: $row[Title]<br /> 
      <br /> 
      </div> 
     "; 
} 

데이터베이스에서 행이 여러 개가있는 것을 기억하십시오. 각 $row 데이터베이스의 행입니다 테이블, "아래로"

---------------------- 
| col1 | col2 | col3 | 
---------------------- 
| val1 | val2 | val3 | 
---------------------- 

귀하의 while 루프 반복합니다. $row에서 foreach을 수행하면 각 열에 대해 개별적으로 반복됩니다.

+0

왜 내가 보지 못했습니까? 당신의 설명에 진심으로 감사드립니다. – wowzuzz

0

foreach 루프를 계속 사용하는 대체 방법은 다음과 같습니다. 이 접근법에 대한 좋은 점은 열을 추가하거나 제거한 경우 루프를 수정할 필요가 없다는 것입니다.

$sql = "SELECT * FROM `newsletter`"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)) { 
    $DATA .= '<div id="contentBox">'; 
    foreach ($row as $key => $value) { 
     $DATA .= $key . ': ' . $value . '<br />'; 
    } 
    $DATA .= '</div>'; 
} 
관련 문제