-5

1回の反復で2つのデータ行を取得しようとしています。

$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error());


while($row = mysql_fetch_assoc($query)){
//returns single row`
}

HTMLテーブル内

1行に2つのデータ行

<tr>
    <td>data 1</td>  
    <td>data 2</td>
</tr>
4

3 に答える 3

0

まず、すべてのデータを配列に入れます。次に、その配列の多次元配列を作成します。したがって、そのようなものごとにすべてのキーで2行をプッシュできます。

while($row = mysql_fetch_assoc($query)){
  $data[] = $row;
}

$last_data = array();
$key = 0;
for($i=0;$i<sizeof($data);$i++) {
  if($i%2 == 0)
  {
    $key++;
  } 
  $last_data[$key][] = $data[$i]; 
}

次に、htmlテーブルを反復処理できます。

<?php foreach ( $last_data as $key => $row) { ?>
<tr>
    <?php foreach ( $row as $k => $row1) { ?>
    <td> <?php echo $row1['field'] ?></td>
    <?php } ?>
</tr>
<?php } ?>

(推奨されていない拡張機能を使用してコードを保持するには、mysql_*の代わりにmysqli_*を使用することをお勧めします。)

于 2013-03-22T09:45:59.980 に答える
0

これが必要かどうかはわかりませんが、試してみてください。

<tr>
<?php
$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
?>
<td><?php echo $row['col'] ?></td>
<?php
}
?>
于 2013-03-22T09:48:45.317 に答える
0

まず、mysql_queryを使用せず、代わりにPDOを使用してください。第二に-あなたはそれをこのようにすることは決してないだろう。参照(next())を使用してこれを実現する方法がいくつかあります。しかし、それは非常に悪いことです。そのため、私は次のようなものを提案します。

$query = $this->db->prepare("select * from tbl_website_index");
$query->execute();
$data = array();

while ($row = $query->fetch(PDO::FETCH_OBJ))
{
 $data[] = $row->fieldName;
}

$data = "<li>" . implode("</li><li>", $data) . "</li>";
print "<ul>" . $data . "</ul>";

それはあなたがやろうとしていることを達成するでしょう。私はそれをテストしていません。

于 2013-03-22T09:53:50.693 に答える