1

現在、クエリで while ループを使用して、後でコードで使用する変数に値を割り当てる習慣があります。データベース内のいくつかの異なるテーブルから目的の出力をまとめるために必要なすべての変数をまとめるために、ほんの一握りの while ループを使用しているため、これはばかげていることがあります。私はまだphpにかなり慣れていないので、pdoのコツをつかみ始めていると思います。しかし、これよりも必要な値を変数に割り当てるより良い方法を知りません。以下のコードは、私の英語が下手な場合に備えてわかりやすくするために、私が話していることの非常に短い例です。以下のコードはゴミですが、例です。これに関する提案、指示、または洞察を大いに感謝します。ありがとうございます!

<?php
$stmt = $core->dbh->prepare("SELECT `user` FROM `buddies` WHERE `id` = ?");
        $stmt->bindParam(1, $id);
        $stmt->execute(); $u = ""; $fname = ""; $lname = ""; $burger = "";
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $u = $row['user'];
            $stm = $core->dbh->prepare("SELECT fname,lname FROM `users` WHERE id = ?");
            $stm->bindParam(1, $u);
            $stm->execute();
            while ($rot = $stm->fetch(PDO::FETCH_ASSOC)){
                $fname = $rot['fname']; $lname = $rot['lname'];
                $st = $core->dbh->prepare("just another query that uses the last values assigned to variables returns")
                                $st->bindParam(1, $variable)
                                $st->execute
                                $burger = $st->fetchColumn();
            }//end of the second while loop of this function
        } //end of while statement 

echo $u." - ".$fname." ".$lname." text: ".$burger;

?>
4

1 に答える 1

1

JOINを使用します。

たとえば、最初の 2 つのクエリを次のようにマージします。

   SELECT buddies.user, users.fname, users.lname FROM buddies JOIN users ON buddies.id=users.id

シナリオによっては、変数の割り当てを使用する必要がある場合があります。しかし間違いなく、while ループの数を減らすことができます。テーブルに共通のフィールドがある可能性が最も高い場合は、そこに関連付けがあり、JOIN が最適です。

于 2012-12-28T03:37:19.077 に答える