ホームページ >バックエンド開発 >PHPの問題 >PHP コードを使用して 2 つのテーブルの関連クエリ表示を実装する

PHP コードを使用して 2 つのテーブルの関連クエリ表示を実装する

PHPz
PHPzオリジナル
2023-03-29 10:12:34939ブラウズ

多くのアプリケーションでは、必要な情報を取得するために複数のデータベース テーブルからデータを取得する必要があります。この場合、2 つのテーブル間の結合クエリは、必要なデータをクエリするための非常に強力なツールとして使用できます。この記事では、PHP コードを使用して 2 つのテーブルの関連クエリ表示を実装する方法を紹介します。

まず、関連するデータベース テーブルのペアを作成する必要があります。単純な電子商取引 Web サイトのシナリオをシミュレーションします。最初のテーブルは products テーブルで、販売可能なすべての製品が含まれています。 2 番目のテーブルは orders テーブルで、既存の注文の詳細が含まれています。 2 つのテーブル間の関連付けは、products.id フィールドと orders.product_id フィールド間の関連付けです。

products テーブルに、次のフィールドを追加する必要があります。

CREATE TABLE products (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2) NOT NULL
);

orders テーブルに、次のフィールドを追加する必要があります。 :

CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    product_id INT NOT NULL,
    customer_name VARCHAR(255) NOT NULL,
    quantity INT NOT NULL,
    total_price DECIMAL(10, 2) NOT NULL,
    order_date DATE NOT NULL,

    FOREIGN KEY (product_id) REFERENCES products(id)
);

これで、データベースに 2 つの関連テーブルがあります。次に、PHP コードを使用してこのデータをクエリし、Web ページに表示するプロセスです。

まず、データベースに接続する必要があります。次のコードを使用してデータベースに接続します。

// 使用 mysqli 连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

データベースへの接続に成功したので、ここからが重要な部分です。2 つのテーブルをクエリし、それらを結合して表示します。次のコードを使用して 2 つのテーブルをクエリし、それらを一緒に表示します。

$sql = "SELECT products.name, products.price, orders.customer_name, orders.quantity, orders.total_price, orders.order_date
        FROM products
        INNER JOIN orders
        ON products.id = orders.product_id";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "产品名称: " . $row["name"] . "<br>";
        echo "价格: " . $row["price"] . "<br>";
        echo "客户姓名: " . $row["customer_name"] . "<br>";
        echo "数量: " . $row["quantity"] . "<br>";
        echo "总价: " . $row["total_price"] . "<br>";
        echo "订单日期: " . $row["order_date"] . "<br><br>";
    }
} else {
    echo "没有数据!";
}

上記のコードでは、SELECT ステートメントと INNER JOIN を使用して 2 つのテーブルを結合しました。 。このクエリを使用すると、products テーブルと orders テーブルからデータを取得し、それらの間の関連付けに基づいてそれらを結合できます。 mysqli_fetch_assoc() 関数を使用して、データベースから取得したデータを反復処理し、結果を Web ページに出力します。

これで、PHP コードを使用して 2 つのテーブル間の相関クエリを実装し、結果を Web ページに表示することができました。

以上がPHP コードを使用して 2 つのテーブルの関連クエリ表示を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。