1回の反復で2つのデータ行を取得しようとしています。
$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
//returns single row`
}
HTMLテーブル内
単一行に2本のデータライン
<tr>
<td>data 1</td>
<td>data 2</td>
</tr>
回答:
回答№1は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_ *を使用してください。)
回答№2の場合は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
}
?>
回答№3の場合は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>";
それはあなたがやろうとしていることを達成するでしょう。まだテストしていません。