Я уже несколько дней застрял на чем-то, и я действительно надеюсь, что кто-то может мне помочь.PHP/MySQLi - цикл через массив для создания динамического предложения WHERE
У меня есть массив с именем $ default_districts, который генерируется запросом, чтобы найти почтовые индексы в пределах предопределенного радиуса из точки ... так что количество сохраненных значений является динамическим.
[0] => NR1
[1] => NR12
[2] => NR13
[3] => NR14
... etc.
В конечном счете, я пытаюсь выяснить, сколько клиентов находится в радиусе от другого адреса. Итак, я хочу использовать эти значения, привязанные к подготовленному заявлению ...
например.
// get data records within the default radius
if ($stmt = $mysqli->prepare("SELECT clientdata_urn, clientdata_district
FROM tblhub_clientdata
WHERE clientdata_district = ?)) {
// bind param to vars
$stmt->bind_param(// LOOP THROUGH $default_districts HERE //));
// execute statement
$stmt->execute();
// store
$stmt->store_result();
// get numrows
$total_numrows = $stmt->num_rows;
// close statement
$stmt->close();
} else {
// error
printf("Error counting total data within default radius: %s\n", $mysqli->error);
}
Если я жёстко, что я пытаюсь создать это было бы что-то вроде этого ...
SELECT clientdata_urn, clientdata_district
FROM tblhub_clientdata
WHERE clientdata_district = 'NR1' OR clientdata_district = 'NR12' OR clientdata_district = 'NR13' OR clientdata_district = 'NR14'
Я немного новичка и любой помощи будет высоко оценен.
спасибо.
Вы хотите, чтобы количество значений не было значений? Если да, то лучше использовать ** GROUP BY ** с ** HAVING **. В ** GROUP BY ** мы используем ** HAVING ** вместо оператора ** WHERE ** mysql. Следующие ссылки могут вам помочь. http://www.mysqltutorial.org/mysql-having.aspx и https://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html –
Вместо использования большого количества операторов OR для Возможные значения одного и того же поля, вы бы лучше искали В массиве: WHERE x IN ('a', 'b', 'c') – Eddy
Спасибо @ web2students, но моя проблема заключается в выборе записей, где 'clientdata_district' соответствует любому из значения в моем массиве, о которых ни одна из этих ссылок не упоминает, поэтому не знаете, как это изменится в GROUP BY? – Rachi