2012-08-22 4 views
-1

PHP를 사용하여 데이터를 반환하는 MySQL 쿼리가 있습니다. 내 문제는 쿼리에 의해 반환 된 데이터로 내 HTML 테이블 (열 3 개)을 채워야하지만 데이터는 Columnwise로 채워 져야한다는 것입니다. Ist처럼 Ist 열을 채워야합니다. 그런 다음 두 번째 및 마지막 세 번째 열을 채워야합니다.MySQL 데이터로 columwise html 테이블 채우기

또한 데이터 무제한으로 가능하다는 것을 알고 싶습니다. 원하는 레이아웃

+0

일부 코드 – user907860

+0

을 게시하면 '데이터 바인딩'을 구현할 수 있습니다. –

+0

아, 결과가 데이터베이스의 모든 동일한 열입니까? – aynber

답변

0

당신이 동안 사용할 수의 스크린 샷 다음

enter image description here

.

<table> 
$sql=mysql_query("select * from table"); 

while($s=mysql_fetch_array($sql)) 
{ 

    $x=$s["x"]; 
    <tr> 
    <td ><?php echo $x; ?></td> 
    <td ><?php echo $y; ?></td> 
    <td ><?php echo $z; ?></td> 
    </tr> 
} 
</table> 
+0

답변을 설명하십시오. 이해하지 못했습니다. – techish

+0

실제로 이것이 답변입니다. $ sql은 데이터 세트이며 무제한 행 또는 열을 인쇄 할 수 있습니다. 당신은 태그를 사용해야하지 않습니다. 무제한 열은 을 사용하십시오. – guybennet

0

guybennet의 대답은 정확하지만, 당신이 당신이 할 수있는 열을 무제한으로 작동하려면 다음의 과정 또한

echo '<table>'; 
$counter = 0; 
$result = mysql_query("select * from table"); 
while($row = mysql_fetch_array($result)) { 
    $counter++; 
    if($counter == 1) { 
     echo '<tr>'; 
     foreach($row as $key => $val) { 
      echo "<th>$key</th>"; 
     } 
     echo '</tr>'; 
    } 
    echo '<tr>'; 
    foreach($row as $key => $val) { 
     echo "<td>$val</td>"; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 

(나는 또한 가독성에 대한 몇 가지 열 헤더에 던졌다) mysqli 나 PDO를 사용해야한다. 나는 간단한 예를 보여주고있다. 당신이이 조직 얼마나 신경 쓰지 않는 경우

+0

작동하지 않습니다 .. 내 포스트에서 스크린 샷을 봅니다. – techish

+0

스크린 샷보다 더 많은 정보를 제공해야합니다. 어쩌면 코드를 보여 주거나 데이터베이스 테이블의 구조를 보여줄 수도 있습니다. – Pitchinnate

0

, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

echo "<table><tr>"; 
$i=0; 
while($row = mysql_fetch_array($sql)) 
{ 
    echo "<td>".$row[0]."</td>\n"; 
    $i++; 
    if($i==3) 
    { 
     echo "</tr>\n<tr>"; 
     $i=0; 
    } 
} 
echo "</tr></table>"; 

그렇지 않으면, 내가 배열로 모든 퍼팅 후 테이블에 퍼팅 좋을 것.

먼저

<?php 
$sql= mysql_query('SELECT * FROM table'); 
$num= mysql_affected_rows($sql); 
$items = array(); 
$i=0; 
while($item=mysql_fetch_array($sql)){ 
    $items[++$i]=$item['data']; 
} 

지금 인쇄를 시작하는 모든 결과 배열을 얻을 :

+0

작동하지 않습니다 ... – techish

+0

작동하지 않는 이유는 무엇입니까? 뭐하는거야? – aynber

0
$data = array(); 
$result = mysql_query("SELECT * FROM your_table"); 
while ($row = mysql_fetch_array($result)) { 
    $data[] = $row; 
} 

$itemsAmount = count($data); 
$ceilAmount = ($itemsAmount - $itemsAmount % 3)/3; 
$lastAmount = $itemsAmount % 3; 
$firstArray = array_slice($data, 0, $itemsAmount); 
$secondArray = array_slice($data, 0, $itemsAmount*2); 
$thirdArray = array_slice($data, 0, $lastAmount); 

$output = "<table>"; 

foreach ($data as $key => $value) { 
    $output .= "<tr>"; 
    $output .= "<td>" . $firstArray[$key][0] . "</td>"; 
    $output .= "<td>" . $secondArray[$key][0] . "</td>"; 
    if (empty($thirdArray[$key])) { 
     $str = ''; 
    } else { 
     $str = $thirdArray[$key][0]; 
    } 
    $output .= "<td>" . $str . "</td>"; 
    $output .= "</tr>"; 
} 
$output .= "</table>"; 

echo $output; 
+0

데이터 대신 인쇄 배열 : O – techish

+0

죄송합니다. 내 대답 수정 - 색인에 대해 잊어 버렸습니다 –

+0

해당 event_title은 Ist 2 행에서 3 번, 그 다음 행에서 2 번 – techish

0

당신은 당신이 순서대로 인쇄되지 않으므로 다음, 모든 결과가 반환 확인을 인쇄해야

int $num_rows; 
$num_rows=$num%3; 
echo '<table>'; 
for ($i=0;$i<$num_rows;$i++){ 
    echo '<tr>'; 
    for ($j=0;$j<2,$j++){ 
    $n=$i+1+($j*$num_rows); 
    if($items[$n]!==null) 
    echo '<td>'.$items[$n].'</td>'; 
    else 
    echo '<td></td>'; 
    }echo '</tr>'; 

}echo'</table>'; 
?> 
+0

코드에 구문 오류가 너무 많습니다. -/ – techish

+0

이미 일부 문제를 해결했습니다. 알려 주시겠습니까? 오류는 무엇입니까? 알고리즘이 제대로 작동해야하므로 사소한 구문 오류를 수정할 수 있습니다. –

관련 문제