1

小さくて単純な質問があると思いますが、すべてを試しましたが、この構文がわかりません。

このコード (php) を入力することから始めます。

require_once('connectvars.php'); // My database connection

//Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
//Retrieve the data from the database
$query = "SELECT * FROM pbclickslogin WHERE username='$username'";
$data = mysqli_query($dbc, $query);
while ($info = mysqli_fetch_array( $data )) {
    echo $info['lol']; echo $info['lol2'];
}

だから私はこの例を作って、「$info['lol'];」と言いましょう。「pbclickslogin」および「$info['lol2'];」という名前のテーブル内の列です。「pbclickssomethingelse」という名前のテーブル内の列です。しかし、両方のデータベースに同時に接続することはできませんか?

私は追加しようとしました:

$query = "SELECT * FROM pbclickslogin, pbclickssomethingelse WHERE username='$username'";

この:

$query = "SELECT * FROM pbclickslogin WHERE username='$username'";
$query2 = "SELECT * FROM pbclickssomethingelse WHERE username='$username'";
$data = mysqli_query($dbc, $query, $query2);
while ($info = mysqli_fetch_array( $data )) {
    echo $info['lol']; echo $info['lol2'];
}

しかし、経験豊富な PHP ユーザーの一部は知っているかもしれません。これら2つのことは私の問題を解決しませんでした。while ループの実行中にこれらのデータベースの両方に接続する方法を知っている人はいますか?

4

2 に答える 2

1

2 つの個別のクエリではなく、2 つのテーブルを結合できます。簡単な例を次に示します。

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    $data = mysqli_query($dbc, "SELECT * FROM pbclickslogin, pbclickssomethingelse WHERE pbclickslogin.username = pbclickssomethingelse.username AND pbclickslogin.username='" . $username . "'");
    while ($info = mysqli_fetch_array( $data )) {
        echo $info['lol']; echo $info['lol2'];
    }
于 2012-10-30T21:36:22.010 に答える
0
SELECT * FROM pbclickslogin l
   INNER JOIN pbclickssomethingelse s ON l.username = p.username
   WHERE l.username='$username'

あなたが与えた例に基づいて私ができる最善のこと。これにより、両方のテーブルのユーザー名を介してテーブルが結合され、ユーザー名が特定の値である「場所」を選択します。

PHP と SQL に関するいくつかのチュートリアルを実行することを強くお勧めします。

于 2012-10-30T21:43:28.157 に答える