替代在while循环中分配变量值?

时间:2012-12-28 03:28:51

标签: php pdo

我目前习惯使用带有查询的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;

?>

1 个答案:

答案 0 :(得分:1)

使用JOINs

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

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

您可能仍需要使用变量分配,具体取决于方案。但绝对可以减少while循环次数。如果表格最有可能是公共字段,那么你就有了一个关联,并且JOIN是可行的方法。