-1

PHP を使用してデータを返す MySQL クエリがあります。私の問題は、クエリによって返されたデータを html テーブル (3 列) に入力する必要があることですが、データは列ごとに入力する必要があります。最初と同様に、最初の列にデータを入力する必要があります..次に 2 番目、最後に 3 番目の列に入力します。

また、無制限のデータセットに対してそれを行うことは可能ですか?

ここに画像の説明を入力

目的のレイアウトのスクリーンショットに従う

4

5 に答える 5

0

使用できます。

<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>
于 2012-08-22T12:56:19.750 に答える
0

ガイベネットの答えは正しいですが、無制限の数の列で機能させたい場合は、これを行うことができます:(読みやすくするためにいくつかの列ヘッダーも入れました)

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 を使用する必要があります。簡単な例を示しています。

于 2012-08-22T13:10:26.540 に答える
0

返されたすべての結果を確認してから、順番に印刷しないのでそれらを印刷する必要があります。

最初にすべての結果を含む配列を取得します

<?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'];
 }

さっそく印刷開始

 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>';
 ?>
于 2012-08-22T13:32:48.737 に答える
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>";

それ以外の場合は、すべてを配列に入れてからテーブルに入れることをお勧めします。

于 2012-08-22T13:13:09.640 に答える
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;
于 2012-08-22T13:27:59.557 に答える