我假设我需要在 for 循环之前加入两个查询,但优化以下代码的最佳方法是:
$LocationArray0 = array();
$LocationArray1 = array();
$LocationArray2 = array();
$LocationArray3 = array();
$LocationArray4 = array();
foreach($Bodyshops as $Bodyshop) {
$Query = "SELECT BodyshopID, BodyshopName, BodyshopLongitude, BodyshopLatitude FROM FusionBodyshops WHERE BodyshopID = '$Bodyshop'";
$result = mysqli_query($db, $Query);
$rows = mysqli_num_rows($result);
if ( $rows != 0 ) {
for ( $i = 0; $i < $rows; $i ++ ) {
$row = mysqli_fetch_array($result, MYSQL_ASSOC);
$BodyshopID = $row['BodyshopID'];
$BodyshopName = $row['BodyshopName'];
$BodyshopLatitude = $row['BodyshopLatitude'];
$BodyshopLongitude = $row['BodyshopLongitude'];
$query2 = "SELECT Tier FROM FusionBodyshopSettings WHERE BodyshopID = '$Bodyshop' AND BusinessID = '$UserCompany'";
$result2 = mysqli_query($db, $query2);
$row2 = mysqli_fetch_array($result2, MYSQL_ASSOC);
if ( $row2['Tier'] == "0") {
array_push($LocationArray0, "'" . str_replace("'", "",$BodyshopName) . "', '" . $BodyshopLatitude . "', '" . $BodyshopLongitude . "'"); //$row['BodyshopID'] . ", " .
}elseif ( $row2['Tier'] == "1") {
array_push($LocationArray1, "'" . str_replace("'", "",$BodyshopName) . "', '" . $BodyshopLatitude . "', '" . $BodyshopLongitude . "'"); //$row['BodyshopID'] . ", " .
}elseif ( $row2['Tier'] == "2") {
array_push($LocationArray2, "'" . str_replace("'", "",$BodyshopName) . "', '" . $BodyshopLatitude . "', '" . $BodyshopLongitude . "'"); //$row['BodyshopID'] . ", " .
}elseif ( $row2['Tier'] == "3") {
array_push($LocationArray3, "'" . str_replace("'", "",$BodyshopName) . "', '" . $BodyshopLatitude . "', '" . $BodyshopLongitude . "'"); //$row['BodyshopID'] . ", " .
}elseif ( $row2['Tier'] == "4") {
array_push($LocationArray4, "'" . str_replace("'", "",$BodyshopName) . "', '" . $BodyshopLatitude . "', '" . $BodyshopLongitude . "'"); //$row['BodyshopID'] . ", " .
}
}
}
}
任何帮助将不胜感激!
最佳答案
您可以将所有代码替换为以下内容:
SELECT a.BodyshopID
, a.BodyshopName
, a.BodyshopLongitude
, a.BodyshopLatitude
, b.Tier
FROM FusionBodyshops a
JOIN FusionBodyshopSettings b
ON b.BodyshopID = a.BodyshopID
WHERE a.BodyshopID IN ($Bodyshops) -- a list of bodyshops
AND b.BusinessID = $UserCompany;
现在查看准备好的语句。
关于php - 需要帮助优化 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608645/