バンコク開発日誌

タイからは帰ってきたのにこのタイトル

DBのデータをPHPで表示(Cloud9)

前回まででDBを作成、CSVからデータの入力までできたので、今度はそのデータを取り出しウェブページに表示してみます。
例によって環境はCloud9です。
下記でDBに接続、

$db = new mysqli($servername, $username, $password, $database, $dbport);

でもって、SQL文を実行するのはDBへのデータ挿入と同じ。

mysqli_query($db, [SQL文]);

今回はデータの取り出しなので、SELECT文を使い、mainテーブル全て抜き出してみます。

SELECT * FROM main;

結果は連想配列mysql_fetch_arrayに格納されるため、echoでHTMLに出力します。
以下全文。

<?php
    $servername = getenv('IP');
    $username = getenv('C9_USER');
    $password = "";
    $database = "il_service";
    $dbport = 3306;
    // Create connection
    $db = new mysqli($servername, $username, $password, $database, $dbport);
    
    // Check connection
    if ($db->connect_error) {
        echo "Connected successfully (".$db->host_info.")";
        die("Connection failed: " . $db->connect_error);
    } 
    echo "Connected successfully (".$db->host_info.")";

    //SQL文
    $sql = "SELECT * FROM main;";
    //実行
    $result = mysqli_query($db,$sql);
    
    echo "<pre>";
    while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
        echo $row[0]."<br>";
    }
    echo "</pre>";
?>

mysql_fetch_arrayの第2引数に"MYSQLI_NUM"を指定すると、結果の行を数値添字配列で取得するmysql_fetch_rowと同じ動きをします。
プレビューするとテーブルの最初の行の値が順番に表示される筈。
"MYSQLI_NUM"の他には連想配列で取得する"MYSQLI_ASSOC"と、両方の属性を含める"MYSQLI_BOTH"があります。