我目前習慣於使用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