2012-12-06 76 views
0

我試圖儘可能地清理它。爲了可讀性,我很抱歉。我絕對需要使用一個聰明的模板或者這種類型的東西,這只是快速和骯髒。我是新來的,對我來說如此光禿禿的。以下是我想要完成的工作:我正在通過一個循環的表格運行,以將所有結果返回到一個漂亮的表格中。在子查詢需要執行之前它確實很好。子查詢查看另一個表,並使用起始循環中的$ office值查找信息,然後從中總結出整數值並將其分配給$ paid。從嵌套MySQL顯示選擇

由於某種原因,兩個循環在返回第一個結果並輸出$ paid後停止。是否有可能完成我在做的事情?我試圖把我的頭包裹起來,似乎我可以對每個結果集的值進行硬編碼並設置單個變量,但這看起來像很多工作。我只想顯示從第一個循環返回的每個結果集的$付費整數。希望這一切都有道理。我非常感謝任何建議。

$mysqli = new mysqli ($db_hostname, $db_username, $db_password, $db_name); 
    $query = "select * from `drawer` where date(`date`) = '$mysql_date' order by `office`"; // select result set for selected date and order by office name 
    $result = $mysqli->query($query); 
    while ($row = $result->fetch_assoc()) { 

echo "<tr class=table_border>\n"; //display results 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['office']."</td>\n"; // return office name 
$office = $row['office']; // grab the office from the first loop to use it in the second loop 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['manager']."</td>\n"; // return manager name 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['scash']."</td>\n"; // display integer value 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['ecash']."</td>\n"; // display integer value 

$newquery = "select * from `offer_det` where `office` = '$office' and date(date) = curdate()"; // subquery to display data from another table and insert for each row when the first loop starts 
$resultquery = $mysqli->query($newquery); 
while ($row=$resultquery->fetch_assoc()) { 
    $paid += $row['paid']; 
} 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$paid."</td>\n"; // both loops end here 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['add']."</td>\n"; // should return integer value 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['remove']."</td>\n"; // should return integer 
echo "<td class=table_rows nowrap width=10%>&nbsp;".$row['total']."</td>\n"; // should return integer 
} 

回答

0

您將要覆蓋$row到內部while循環

變化

while ($row=$resultquery->fetch_assoc()) { 
    $paid += $row['paid']; 
} 

while ($row1=$resultquery->fetch_assoc()) { 
    $paid += $row1['paid']; 
} 
+0

感謝兄弟,它允許我繼續使用循環。仍然不是我想要的,但我想我可以從這裏弄清楚。 – smada

0

你在內部分配$行while循環 - 它已經分配到外部循環。嘗試在內部循環中將其更改爲不同的變量名稱,

while ($row1=$resultquery->fetch_assoc()) { 
    $paid += $row1['paid']; 
}