2009-11-26 2 views
3

내 데이터베이스의 테이블에있는 모든 항목을 선택하고 한 번에 5 개의 결과를 표시하려면 어떻게 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?PHP : 데이터베이스의 항목을 5 개 그룹으로 표시 하시겠습니까?

의미 :

<div class="1-5">Record[1], Record[2], Record[3], Record[4], Record[5]</div> 

<div class="6-10">Record[6], Record[7], Record[8], Record[9], Record[10]</div> 

<div class="11-15">Record[11], Record[12], Record[13], Record[14], Record[15]</div> 

나는 내가 그것을 할 수 있다면 완전히 확실하지 않다, • 예는 그때 나는이처럼 내 데이터를 표시 할, 15 개 기록을 내 데이터베이스에 총했습니다 것입니다 SQL 문 또는 나는 일종의 "do ... while"또는 루프를 작성하여 각 데이터 세트를 검색해야합니다. 나는 또한 배열에 대해 생각해 봤지만 결과가 나오지 않았다. 내가 array_chunk()을 찾을

감사

  • Mestika

답변

4

는 이런 종류의 일을 위해 매우 유용합니다.

// pull all the records into an array 
$query = mysql_query('SELECT * FROM mytable'); 
$rows = array(); 
while ($row = mysql_fetch_array($query)) { 
    $rows[] = $row; 
} 

// this turns an array into an array of arrays where each sub-array is 
// 5 entries from the original 
$groups = array_chunk($rows, 5); 

// process each group one after the other 
$start = 1; 
foreach ($groups as $group) { 
    $end = $start + 4; 

    // $group is a group of 5 rows. process as required 
    $content = implode(', ', $group); 

    echo <<<END 
<div class="$start-$end">$content</div> 

END; 
    $start += 5; 
} 

물론 당신이 먼저 그들 모두를 읽지 않고이 작업을 수행 할 수 있지만 어쨌든 그들 모두를 읽으려고하는 경우에, 그것은 많은 차이를하지 않으며 위의 버전은 아마 구현보다 훨씬 더 읽을 수 DB에서 행을 읽을 때 적절한 구분 조건.

1

몰라 내가 질문 권리를 이해하지만, 경우에 u는 그룹에 5 그룹의 모든 결과를 원하는 경우 :


$i =1;  
while ($row = mysql_fetch_array($query)) { 
echo $row['name']."\n"; 
if ($i % 5 == 0) 
{ 
    echo 'hr'; // Or any other separator you want 
} 
$i++; 
} 
+0

이 답변 꽤 좋은 바로 가기 솔루션 ... 덕분에 친구를 –

관련 문제