2011-08-21 6 views
1

사람들의 이름이 들어있는 MySQL 테이블이 있습니다. PHP를 사용하면이 이름을 3 열로 나누어 표시하는 가장 좋은 방법은 무엇입니까?데이터를 3 열로 나눕니다.

HTML 테이블을 사용하여이 작업을 수행 할 수 있지만 <div>을 사용하면이 작업을 수행 할 수 있습니까?

% 연산자를 사용하여이 작업을 수행 할 수 있다고 들었습니다. 이것이 최선의 방법일까요? 어떻게 할 수 있습니까?

+0

이름의 형식은 무엇이며 어떻게 나누겠습니까? – DaveRandom

+7

답변을 수락 한 적이 있습니까? –

+2

표 형식의 데이터를 다룰 때'

'의 오류는 없습니다. – DaveRandom

답변

8

modulus 연산자를 사용하여이 작업을 수행 할 수 있지만 실제로는 CSS에서만 가능합니다.

display: inline-block을 사용하면 좋은 열 효과를 얻을 수 있습니다. this JSFiddle here을 살펴보십시오. 저는 게으르 기 때문에 JavaScript 만 사용하고 있습니다. 귀하의 경우 PHP에 의해 <div> 목록이 생성됩니다. 너비를 특정 너비로 ​​제한하려면 고정 된 너비의 컨테이너 <div>에 넣으십시오.


테이블을 사용하는 솔루션을 생각해 냈습니다. 실제로 수행해야하는 작업 (특별한 사용 사례를 제공하지 않았습니다)입니다. 코드는 아래뿐 아니라 작동 데모 here입니다.

$columns = 4;  // The number of columns you want. 

echo "<table>";  // Open the table 

// Main printing loop. change `30` to however many pieces of data you have 
for($i = 0; $i < 30; $i++) 
{ 
    // If we've reached the end of a row, close it and start another 
    if(!($i % $columns)) 
    { 
     if($i > 0) 
     { 
      echo "</tr>";  // Close the row above this if it's not the first row 
     } 

     echo "<tr>"; // Start a new row 
    } 

    echo "<td>Cell</td>";  // Add a cell and your content 
} 

// Close the last row, and the table 
echo "</tr> 
</table>"; 

는 그리고 마무리하기 위해, 우리는 우리의 열 중심의 레이아웃,이 시간이 div의 다시 가고 있습니다. 여기에 CSS가 있습니다. 이 파일은 인라인이 아닌 별도의 파일에 저장해야합니다.

<?php 
$rows = 10;  // The number of columns you want. 
$numItems = 30;  // Number of rows in each column 

// Open the first div. PLEASE put the CSS in a .css file; inline used for brevity 
echo "<div style=\"width: 150px; display: inline-block\">"; 

// Main printing loop. 
for($i = 0; $i < $numItems; $i++) 
{ 
    // If we've reached our last row, move over to a new div 
    if(!($i % $rows) && $i > 0) 
    { 
     echo "</div><div style=\"width: 150px; display: inline-block\">"; 
    } 

    echo "<div>Cell $i</div>";  // Add a cell and your content 
} 

// Close the last div 
echo "</div>"; 
?> 
+0

감사합니다. 이상적으로 PHP와 모듈러스 연산자를 사용하여이 작업을 수행하는 것이 더 좋을 것입니다. 그러면 각 열에 있어야하는 항목의 수를 정의 할 수 있어야하므로 데이터가 다음 열에 삽입되기 시작해야하는시기를 지정할 수 있습니다. 이 작업을 수행하는 방법에 대한 지침을 제공 할 수 있습니까? – user826855

+0

@ user826855 위의 수정 사항을 참조하십시오. 코드는 상당히 자명하다 (나는 희망한다). 아직 질문이 있으시면 두려워하지 마십시오. – Bojangles

+0

우수! 고마워. 그것은 그것을 다른 방법으로 할 수 있습니까? 오히려 행 (가로)로 채우십시오. 열 (세로)로 할 수 있습니까? – user826855

관련 문제