2 つの MySQL データ テーブルにクエリを実行し、PHP でそれらを計算することは一般的な要件です。この記事では、PHP を使用して MySQL に接続し、データ テーブルのクエリ、テーブル間のクエリ、およびデータの計算を行う方法を紹介します。
PHP で MySQL に接続するには、mysqli または PDO 拡張機能を使用する必要があります。ここでは mysqli 拡張機能を使用します。サンプル コードは次のとおりです:
<?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = mysqli_connect($host, $username, $password, $dbname); if(!$conn){ die("Connection failed: " . mysqli_connect_error()); }
データ テーブルをクエリするには、SELECT ステートメントを使用する必要があります。まず、クエリする列とデータ テーブルを選択する必要があります。
$sql = "SELECT id, name, age FROM users"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>"; } }else{ echo "0 results"; }
この例では、users データ テーブルの id、name、age 列をクエリし、これらの列の値を出力します。
クロステーブル クエリでは、JOIN ステートメントを使用する必要があります。ユーザーと注文という 2 つのデータ テーブルがあり、ユーザーの注文数量をクエリする必要があるとします。
まず、LEFT JOIN キーワードを使用して 2 つのデータ テーブルを接続する必要があります:
$sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name"; $result = mysqli_query($conn, $sql);
この例では、LEFT JOIN キーワードを使用して users とorders データ テーブルを接続します。そして、ON 句の user_id 列を使用して 2 つのデータ テーブルを結合します。
次に、GROUP BY 句を使用してユーザーの ID と名前でグループ化し、COUNT 関数を使用してユーザーの注文の数量を計算します。
データを計算するには SQL 関数が必要です。ここでは、よく使われる SQL 関数をいくつか紹介します。
SUM 関数は、指定された列の合計を計算できます:
SELECT SUM(price) FROM orders;
AVG 関数は、指定された列の平均を計算できます:
SELECT AVG(price) FROM orders;
COUNT 関数は、指定された列の平均を計算できます。指定された列の行数:
SELECT COUNT(*) FROM orders;
MAX 関数は、指定された列の最大値を選択できます:
SELECT MAX(price) FROM orders;
MIN 関数は、指定された列の最小値を選択できます:
SELECT MIN(price) FROM orders;
さて、上記をまとめて完全な例を構築しましょう:
<?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = mysqli_connect($host, $username, $password, $dbname); if(!$conn){ die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Orders count: " . $row["orders_count"]. "
"; } }else{ echo "0 results"; } mysqli_close($conn); ?>
この完全な例では、まず MySQL に接続し、次に、LEFT JOIN キーワードを使用してユーザーと注文のデータ テーブルをクエリし、各ユーザーの注文数量を計算します。
最後に、mysqli_close 関数を使用して MySQL 接続を閉じます。
概要
2 つの MySQL データ テーブルをクエリして PHP で計算するには、mysqli または PDO 拡張機能を使用して MySQL に接続し、SELECT ステートメントと JOIN ステートメントを使用してデータ テーブルをクエリし、 SUM、AVG、COUNT、MAX および MIN 関数はデータを計算します。
クエリ ステートメントを作成する前に、クエリ対象の列とデータ テーブルの関係を明確に理解し、複雑なクエリ ステートメントの使用をできるだけ避ける必要があることに注意してください。同時に、SQL インジェクション攻撃を避けるために、mysqli_real_escape_string 関数を使用してユーザー入力をフィルタリングする必要があります。
以上がPHPがMySQLデータベースを操作する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。