在我的PHP腳本我做的mysql_query:PHP獲得一個變量從while循環外
$full_alarm_sql = "
SELECT alarms.id, alarms.date, clients.name, clients.number, alarms.controller, alarmstype.type,
alarms.alarmstatus, alarms.starttime, alarms.endtime, DATEDIFF(CURDATE(), alarms.date) AS difference
FROM alarms
LEFT JOIN clients ON alarms.clientid = clients.id
LEFT JOIN alarmstype ON alarms.typeid = alarmstype.id
WHERE DATEDIFF(CURDATE(), alarms.date) <=" . $type . " AND clients.number = " . $market;
$full_alarm_query = mysql_query($full_alarm_sql);
,然後我做一個表內while循環與查詢取:
while ($full_alarm_fetch = mysql_fetch_array($full_alarm_query)) {
$content .=
"
<tr>
<td>" . $full_alarm_fetch['date'] . "</td>
<td>" . $full_alarm_fetch['number'] . " | " . $full_alarm_fetch['name'] . "</td>
<td>" . $full_alarm_fetch['controller'] . "</td>
<td>" . $full_alarm_fetch['type'] . "</td>
<td>" . $full_alarm_fetch['alarmstatus'] . "</td>
<td>" . $full_alarm_fetch['starttime'] . "</td>
<td>" . $full_alarm_fetch['endtime'] . "</td>
</tr>";
$client_name = $full_alarm_fetch['name'] . ' | ' . $full_alarm_fetch['number'];
}
,然後我需要使用
$full_alarm_fetch['name'] . ' | ' . $full_alarm_fetch['number'];
所以我現在做的方式只是似乎不是最好的方式,這意味着variabl e循環內部的while循環將被重寫,直到循環結束,並且我可以使用獲取信息。
我想知道是否有更好/有效的方式做我想做的事情。
在此先感謝。
感謝您的快速響應,你們倆。但是再次添加另一個函數(for循環)來拉取兩個我已經在另一個變量中的變量聽起來不正確。是不是對腳本中已有的信息有太多的代碼?另一種方法,我可以做到這一點是通過將變量$ client_name作爲FALSE,在循環和循環中創建一個if(!$ client_name){$ client_name = $ statics_fetch ['number']。 「|」。 $ statics_fetch ['name'];},並且變量的設置只會出現一次,但thanagain if語句現在正在重複它自己.. – FedeSc
@FedeSc:我也不會使用另一個循環。在每個循環中,這會明顯地比執行時重寫變量更昂貴。就像你說的,你可以檢查變量是否已經有值,或者,既然你知道這個數字,你可以爲這個名字做一個單獨的查詢。但是,如果您期望在主查詢中有很多行,這隻會是有益的。無論哪種方式,這不是一件失去太多時間,數組查找和變量賦值都是非常快的操作 – cypherabe
@cypherabe - 是的,我考慮過另一個查詢,考慮到執行時間。所以我想我會堅持價值變化的方法。感謝所有關於此事的諮詢。乾杯費德。 – FedeSc