在我的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