我目前习惯使用带有查询的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;
?>
答案 0 :(得分:1)
使用JOINs。
例如,合并前两个查询,例如
SELECT buddies.user, users.fname, users.lname FROM buddies JOIN users ON buddies.id=users.id
您可能仍需要使用变量分配,具体取决于方案。但绝对可以减少while循环次数。如果表格最有可能是公共字段,那么你就有了一个关联,并且JOIN是可行的方法。