かなり基本的なはずですが、動作しません。 mysqliクエリを反復処理する次のコードがあります。
while($row = mysqli_fetch_array($result)) {
$posts[] = $row['post_id'].$row['post_title'].$row['content'];
}
それは動作し、戻ります:
変数#1:(配列、3要素)↵0(文字列):「4testtest」(9文字)1(文字列):「1Hello world!WordPressへようこそ。これは最初の投稿です。編集または削除してから、ブログを開始してください!」 (99文字)2(文字列):「2サンプルページこれはサンプルページです。ブログの投稿とは異なります。1か所にとどまり、サイトのナビゲーションに表示されます(ほとんどのテーマ)。」 (161文字)
問題は、3つの列すべてを1つの列に入れるため、個別にアクセスできないことです。
これは例えば:
0 (String): "4testtest" (9 characters)
4、テスト、テストに分ける必要があります
私がこれをするとき:
while($row = mysqli_fetch_array($result)) {
$posts['post_id'] = $row['post_id'];
$posts['post_title'] = $row['post_title'];
$posts['type'] = $row['type'];
$posts['author'] = $row['author'];
}
3つすべてではなく1行のみを出力します…
どんな助けでも大歓迎です!
MySQLからすべての値を取得します。
$post = array();
while($row = mysql_fetch_assoc($result))
{
$posts[] = $row;
}
次に、各値を取得します。
<?php
foreach ($posts as $row)
{
foreach ($row as $element)
{
echo $element."<br>";
}
}
?>
値をエコーします。または、$ post変数から各要素を取得します
これはあなたの解決策でした。
$x = 0;
while($row = mysqli_fetch_array($result)) {
$posts[$x]['post_id'] = $row['post_id'];
$posts[$x]['post_title'] = $row['post_title'];
$posts[$x]['type'] = $row['type'];
$posts[$x]['author'] = $row['author'];
$x++;
}
これは、結果を出力するより簡単な方法だと思います。
自分のデータを使用して申し訳ありませんが、簡単に置き換えることができます。
$query = "SELECT * FROM category ";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result))
{
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo $cat_id . " " . $cat_title ."<br>";
}
これは出力します:
どちらもmysqli_fetch_array whileループで完全に機能します
while($row = mysqli_fetch_array($result,MYSQLI_BOTH)) {
$posts[] = $row['post_id'].$row['post_title'].$row['content'];
}
(または)
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$posts[] = $row['post_id'].$row['post_title'].$row['content'];
}
mysqli_fetch_array()-2番目の引数$ resulttypeがあります。
MYSQLI_ASSOC:連想配列をフェッチ
MYSQLI_NUM:数値配列をフェッチ
MYSQLI_BOTH:連想配列と数値配列の両方を取得します。