web-dev-qa-db-ja.com

すべての行を表示するmysqliクエリ結果

私は次のコードを持っています:

include $_SERVER['DOCUMENT_ROOT'].'/include/conn.php'; 

$query = "SELECT title FROM news_event";
$result = $mysqli->query($query);
$row = $result->fetch_array(MYSQLI_BOTH);
$row_cnt = $result->num_rows;
$result->free();
$mysqli->close();

ただ$ row ['title']をエコーできるので結果が1つだけの場合はこれで問題ありませんが、結果がたくさんある場合、どのようにループしてすべての行を印刷するのでしょうか。

これは本当に簡単だと確信していますが、Googleで何を検索する必要があるのか​​わかりません。

私はこれと同等のmysqliを探しています:

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }
13
Tom

単にmysqli_fetch_arrayまたはmysqli_result::fetch_arrayに置き換えてください:)

while($row = $result->fetch_array())
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

ほぼすべてのmysql_*関数には、対応するmysqli_*関数があります。

24
raidenace

単純なmysqliソリューション:

$db = new mysqli('localhost','user','password','database');
$resource = $db->query('SELECT * FROM table WHERE 1');
while ( $rows = $resource->fetch_assoc() ) {
    print_r($rows);//echo "{$row['field']}";
}
$resource->free();
$db->close();

エラー処理:致命的なエラーがある場合、スクリプトはエラーメッセージで終了します。

// ini_set('display_errors',1); // Uncomment to show errors to the end user.
if ( $db->connect_errno ) die("Database Connection Failed: ".$db->connect_error);
$db = new mysqli('localhost','user','password','database');
$resource = $db->query('SELECT field FROM table WHERE 1');
if ( !$resource ) die('Database Error: '.$db->error);
while ( $row = $resource->fetch_assoc() ) {
    echo "{$row['field']}";
}
$resource->free();
$db->close();

イテレータの使用: PHP 5.4でサポートが追加されました

$db = new mysqli('localhost','user','password','database');
foreach ( $db->query('SELECT * FROM table') as $row ) {
    print_r($row);//echo "{$row['field']}";
}
$db->close();

単一レコードのフェッチ:このコードはループを必要としません。

$db = new mysqli('localhost','user','password','database');
$resource = $db->query('SELECT field FROM table');
$row = $resource->fetch_assoc();
echo "{$row['field']}";
$resource->free();
$db->close();
6
jaggedsoft

使用する:

while ($row = $result->fetch_array(MYSQLI_BOTH)) {
    // Look inside $row here, do what you want with it.
}

ここで連想配列の例を見てください(fetch_array()バージョンにも対応する必要があります)。

http://php.net/manual/en/mysqli-result.fetch-assoc.php

3
Stegrex