我目前习惯于使用while循环与我的查询将值分配给稍后在代码中使用的变量。有时候,这会变得很荒谬,因为我使用了一些while循环来集合我需要的所有变量,以将来自我数据库中几个不同表的所需输出组合在一起。 我对PHP仍然很陌生,并且开始有种感受pdo的感觉,我想。但是,我不知道为我的变量分配所需值的更好方法。下面的代码是我正在谈论的一个非常简短的例子,只是为了清楚我的英文不好。下面的代码是垃圾,但是是一个例子。我非常感谢任何建议,方向或对此的洞察。非常感谢!替代在while循环中分配变量值?
<?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;
?>
如果你的表格结构合理,你可能只需要在一个使用连接的查询中获得更多的数据。 – 2012-12-28 03:32:42
您应该将其中一部分用外连接插入SQL中,然后循环一次并创建单个数据结构。您拥有的代码不仅令人费解,而且由于嵌套的n + 1样式查询而受到可怕的性能问题。 –
你为什么不加入不同的查询?你的第一个2个查询可以很容易'SELECT users.fname,users.lname FROM users as users INNER JOIN user as user ON users.id = user.user WHERE user.id =?' – kennypu