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

例如,合并您的前两个查询,例如

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

根据场景,您可能仍需要使用变量分配。但绝对可以减少 while 循环的数量。如果表最有可能具有公共字段,则您在那里有一个关联,并且 JOIN 是要走的路。

于 2012-12-28T03:37:19.077 回答