22

MySQLにデータベースがあり、SQLテーブルの1つをHTMLまたはPHPテーブルに表示したいと思います。オンラインで検索しましたが、この機能を実装できません。誰かがコーディングを手伝ってくれませんか?

database = 'hrmwaitrose'
username = 'root'
host = 'localhost'

パスワードはありません。

「従業員」テーブルのデータを表示したいと思います。

4

4 に答える 4

46

PHPは、MySQLデータベースに接続するための関数を提供します。

$connection = mysql_connect('localhost', 'root', ''); //The Blank string is the password
mysql_select_db('hrmwaitrose');

$query = "SELECT * FROM employee"; //You don't need a ; like you do in SQL
$result = mysql_query($query);

echo "<table>"; // start a table tag in the HTML

while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
echo "<tr><td>" . htmlspecialchars($row['name']) . "</td><td>" . htmlspecialchars($row['age']) . "</td></tr>";  //$row['index'] the index here is a field name
}

echo "</table>"; //Close the table in HTML

mysql_close(); //Make sure to close out the database connection

whileループ(結果行に遭遇するたびに実行されます)では、エコーして新しいテーブル行を作成します。また、フィールドを含めるためにを追加します。

これは非常に基本的なテンプレートです。mysql_connectの代わりにmysqli_connectを使用して他の回答が表示されます。mysqliはmysql改良の略です。それはより良い範囲の機能を提供します。また、もう少し複雑であることに気づきます。それはあなたが必要とするものに依存します。

「mysql_fetch_array」はPHP5.5.0以降非推奨になり、PHP7.0.0で削除されたことに注意してください。したがって、代わりに「mysqli_fetch_array()」を確認してください。

于 2013-03-06T15:30:02.683 に答える
8

これは、各列名を入力せずに表形式のデータを表示するために作成した単純な関数です:(また、注意:ネストされたループ)

function display_data($data) {
    $output = '<table>';
    foreach($data as $key => $var) {
        $output .= '<tr>';
        foreach($var as $k => $v) {
            if ($key === 0) {
                $output .= '<td><strong>' . $k . '</strong></td>';
            } else {
                $output .= '<td>' . $v . '</td>';
            }
        }
        $output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
}

以下の更新された機能

こんにちはジャック、

関数の設計は問題ありませんが、この関数は常に配列の最初のデータセットを見逃します。私はそれをテストしました。

あなたの関数はとても素晴らしいので、多くの人がそれを使用しますが、彼らは常に最初のデータセットを見逃します。それが私がこの修正を書いた理由です。

欠落しているデータセットは、key ===0の場合の条件に起因します。key=0の場合、列ヘッダーのみが書き込まれ、$key0を含むデータも書き込まれません。したがって、配列の最初のデータセットは常に欠落しています。

次のように、if条件を2番目のforeachループの上に移動することで、これを回避できます。

function display_data($data) {
    $output = "<table>";
    foreach($data as $key => $var) {
        //$output .= '<tr>';
        if($key===0) {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= "<td>" . $col . '</td>';
            }
            $output .= '</tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
        else {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
    }
    $output .= '</table>';
    echo $output;
}

よろしくお願いいたします-AxelArnoldBangert-Herzogenrath 2016

また、コードの保守性を損なう冗長なコードブロックを削除する別の更新。

function display_data($data) {
$output = '<table>';
foreach($data as $key => $var) {
    $output .= '<tr>';
    foreach($var as $k => $v) {
        if ($key === 0) {
            $output .= '<td><strong>' . $k . '</strong></td>';
        } else {
            $output .= '<td>' . $v . '</td>';
        }
    }
    $output .= '</tr>';
}
$output .= '</table>';
echo $output;

}

于 2015-09-08T21:46:32.803 に答える
4

http://www.w3schools.com/php/php_mysql_select.aspを参照してください 。あなたが初心者で学びたいのなら、w3schoolsは良い場所です。

<?php
    $con=mysqli_connect("localhost","root","YOUR_PHPMYADMIN_PASSWORD","hrmwaitrose");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $result = mysqli_query($con,"SELECT * FROM employee");

    while($row = mysqli_fetch_array($result))
      {
      echo $row['FirstName'] . " " . $row['LastName']; //these are the fields that you have stored in your database table employee
      echo "<br />";
      }

    mysqli_close($con);
    ?>

echoあなたはあなたのテーブルの中で同様にそれをすることができます

<?php
 echo "<table>";
 while($row = mysqli_fetch_array($result))
          {
          echo "<tr><td>" . $row['FirstName'] . "</td><td> " . $row['LastName'] . "</td></tr>"; //these are the fields that you have stored in your database table employee
          }
 echo "</table>";
 mysqli_close($con);
?>
于 2013-03-06T15:25:50.943 に答える
3

マニュアルhttp://www.php.net/manual/en/mysqli.query.phpを見てください

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>
于 2013-03-06T15:18:35.957 に答える