PHP从while循环中获取外部变量
在我的PHP脚本中,我进行了一个mysql\u查询:PHP从while循环中获取外部变量,php,mysql,Php,Mysql,在我的PHP脚本中,我进行了一个mysql\u查询: $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.da
$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循环中的变量会被一次又一次地覆盖,直到循环结束,然后我才能使用用户获取信息
我想知道是否有更好/更有效的方法来做我想做的事情
提前谢谢 是的,有更好的方法。您可以首先声明一个数组并将获取的内容保存在该数组中,然后在该数组中循环。像这样
$fetched_arr = array();
while ($full_alarm_fetch = mysql_fetch_array($full_alarm_query)) {
$fetched_arr[] = $full_alarm_fetch;
}
然后循环数组
foreach($fetched_array as $something)
{
//here you can save the values in the $content
// you can use $somethin['date'] and etc..
}
是的,有更好的办法。您可以首先声明一个数组并将获取的内容保存在该数组中,然后在该数组中循环。像这样
$fetched_arr = array();
while ($full_alarm_fetch = mysql_fetch_array($full_alarm_query)) {
$fetched_arr[] = $full_alarm_fetch;
}
然后循环数组
foreach($fetched_array as $something)
{
//here you can save the values in the $content
// you can use $somethin['date'] and etc..
}
你的代码很好。你可以一次抓住整个rs然后循环
while ($rs[] = mysql_fetch..);
//done..
for($i=0;$i<sizeof($rs);$i++) or
foreach($rs as $rec)
while($rs[]=mysql\u fetch.);
//完成。。
对于($i=0;$i您的代码很好。您可以一次获取整个rs,然后循环
while ($rs[] = mysql_fetch..);
//done..
for($i=0;$i<sizeof($rs);$i++) or
foreach($rs as $rec)
while($rs[]=mysql\u fetch.);
//完成。。
对于($i=0;$i)你们两个都支持快速响应。但是再次添加另一个函数(for循环)拉取两个我已经在另一个变量中得到的变量听起来不太正确。对于我已经在脚本中得到的信息,这不是太多代码吗?另一种方法是,在循环之前,将变量$client_name设置为FALSE,然后在循环中生成if(!$client_name){$client_name=$statics_fetch['number'].$statics_fetch['name'];},然后变量的设置将只出现一次,但if语句现在会再次重复它自己。@FedeSc:我也不会使用另一个循环。这肯定比在每个循环中覆盖变量的执行时间更昂贵。正如您所说,您可以检查变量是否已经有值,或者,因为在知道数字之前,您可以只对名称进行单独的查询。但是,这只有在您希望主查询中有许多行时才有好处。无论哪种方式,这都不会浪费太多时间,数组查找和变量分配都非常快operations@cypherabe-是的,考虑到执行时间。所以我想我会坚持使用值变量化方法。感谢大家在这件事上的咨询。为Fede干杯。感谢你们两位的快速响应。但是,再次添加另一个函数(for loop)拉取两个我已经在另一个变量中得到的变量听起来不太正确。对于我已经在脚本中得到的信息,这不是太多代码吗?另一种方法是,在循环之前,将变量$client_name设置为FALSE,然后在循环中生成if(!$client_name){$client_name=$statics_fetch['number'].$statics_fetch['name'];},然后变量的设置将只出现一次,但if语句现在会再次重复它自己。@FedeSc:我也不会使用另一个循环。这肯定比在每个循环中覆盖变量的执行时间更昂贵。正如您所说,您可以检查变量是否已经有值,或者,因为在知道数字之前,您可以只对名称进行单独的查询。但是,这只有在您希望主查询中有许多行时才有好处。无论哪种方式,这都不会浪费太多时间,数组查找和变量分配都非常快operations@cypherabe-是的,考虑到执行时间。所以我想我会坚持价值变异法。谢谢你在这件事上的所有咨询。为Fede干杯。谢谢你的快速回复,我向你推荐我的评论。问候。谢谢你的快速回复,我向你推荐我的评论。问候。