PHP替代在循环中使用查询
发布时间:2020-05-26 02:14:50 所属栏目:PHP 来源:互联网
导读:我被告知在循环中使用查询(选择)是一种不好的做法,因为它会降低服务器性能. 我有一个像这样的数组 Array ( [1] = Los Angeles )Array ( [2] =New York)Array ( [3] = Chicago ) 这些只是3个索引.我正在使用的数组没有常量大小,因此有时它可以包含多达20个索引
|
我被告知在循环中使用查询(选择)是一种不好的做法,因为它会降低服务器性能. 我有一个像这样的数组 Array ( [1] => Los Angeles ) Array ( [2] =>New York) Array ( [3] => Chicago ) 这些只是3个索引.我正在使用的数组没有常量大小,因此有时它可以包含多达20个索引. 现在,我正在做的是(这不是所有的代码,但基本的想法) >对于循环 输出将如下所示: Los Angeles
Michael Stern
David Bloomer
William Rod
New York
Kary Mills
Chicago
Henry Davidson
Ellie Spears
我知道这是一种非常低效的方法,因为随着表的变大,它可能会有很多查询. 所以我的问题是,是否有一种更好,更有效的方法来根据数组中的内容选择信息,这些内容可以是任何大小的? 要进一步添加到MrCodes的答案,如果你从数组开始: –$Cities = array(1=>'Los Angeles',2=>'New York',3=>'Chicago');
$query = "SELECT town,personname FROM people WHERE town IN('".implode("','",$Cities)."') ORDER BY town";
if ($sql = $mysqliconnection->prepare($query))
{
$sql->execute();
$result = $sql->get_result();
$PrevCity = '';
while ($row = $result->fetch_assoc())
{
if ($row['town'] != $PrevCity)
{
echo $row['town']."<br />";
$PrevCity = $row['town'];
}
echo $row['personname']."<br />";
}
}
作为数据库设计问题,您可能应该将城镇名称放在单独的表中,并且该人员的表包含城镇的ID而不是实际的城镇名称(使验证更容易,更快,并且验证不太可能错过记录因为有人把他们的家乡打错了) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
