2012-07-31 4 views
1

mysql 데이터베이스에서 정보를 그리기위한 PHP 페이지를 만들고 있는데, 너무 오래 머물러 있기 전에 내가하고있는 일을하는 더 쉬운 방법이 있는지 알았을 것이라고 생각했습니다. .PHP MYSQL 수평 루프

필자는 while 루프를 사용하여 쉽게 반복 할 수있는 여러 행을 반환하는 MySql 쿼리를 갖고 있으며 상대적인 "일치하는"데이터가있는 곳을 분명히 루프합니다.

각 행은 각 행마다 다른 1에서 16 열 사이의 데이터를 가질 수 있습니다. 현재 유효한 정보를 추출하는 방법은 각 열에 대해 "if"명령을 하드 코딩하여 예를 들어, 표시됩니다 입력 한 :

if($column1 != ""){ 
    $output .= "<div style='float: left;'>Column 1 Stuff</div>"; 
    } 
if($column2 != ""){ 
    $output .= "<div style='float: left;'>Column 2 Stuff</div>"; 
    } 

이 잘 작동하지만 그것은 매우 역동적하지 않고 MySQL 데이터베이스 테이블이 인 확장하면 코드의 업데이트가 필요합니다. 내가 할 수 있기를 정말로 원하는 것은 while 루프와 같은 단일 코드를 사용하여 데이터가있는 모든 열에 대해 동일한 절차를 수행하고 빈 셀을 무시한다는 것입니다. 누구든지이 사실을 효율적으로 달성 할 수있는 좋은 방법이 있습니까?

또한 문제가 발생하면 내 "div"가 모두 왼쪽으로 정렬되므로 둘러싸는 div의 끝에 도달하면 자동으로 다음 줄로 자동 줄 바꿈되므로 9 개의 결과가 있으면 3 "div"상자의 3 행이됩니다. 이런 결과를 얻기위한 유효한 방법입니까? 나는이 게시물에서 "break"명령을 사용하고이 게시물에서 대답을 찾고있었습니다.>How to do a Horizontal looping in PHP,하지만 IE9 태그와의 호환성 문제가 너무 많아 가능하지 않은 경우 더 이상 구현할 필요가 없습니다.

실제로 도움이 될 수 있으면 미리 감사드립니다. 같은 조

+0

기다림. 동일한 쿼리의 각 데이터 행에 대해 서로 다른 수의 열을 어떻게 사용할 수 있습니까? 빈 열을 가질 수는 있지만 다른 열 수를 얻는 방법을 알 수는 없습니다. – Palladium

+0

죄송 합니다만, 설명이 잘못되었습니다. 16 개 열 내에 필수 데이터가 1 ​​~ 16 개 존재할 수 있으며 항상 같은 양의 열이 있습니다 (현재는 어쨌든) – JoeP

답변

8

뭔가 :

$result = mysql_query(...); 
while($row = mysql_fetch_assoc($result)) { 
    foreach ($row as $key => $val) { 
     if (!empty($val)) { 
      echo ... 
     } 
    } 
} 

결과 집합의 열 개수를 처리 할 것입니다.

+0

정말 간단합니까? !? 나는 거의 희망하지 않는다! 나는 곧 돌아올거야 :) – JoeP

+0

그래, 네가 고마워 한 일이야! 실제로 데이터를 복제하고 있지만, 각 활성 셀은 두 번 출력됩니다. 빠른 수정을 생각할 수 있습니까? – JoeP

+0

mysql_fetch_array를 assoc이 아닌 사용하고 있으므로 걱정하지 마십시오. :) – JoeP