Я пытаюсь отладить запрос MySQL, и у меня есть проблемы с пониманием, почему один цикл, а в моем сценарии не работает:Проблема с запросом MySQL
// select db
mysql_select_db($dbname);
for ($x = $latRange[0]; $x <= $latRange[1]; $x++)
{
for ($y = $lngRange[0]; $y <= $lngRange[1]; $y++)
{
$sql="SELECT * FROM $usertable WHERE $xlookup = $x AND $ylookup = $y";
$SQLresult = mysql_query($sql);
while($row = mysql_fetch_array($SQLresult))
{
$tmpResult = $row[$popDen];
$result += $tmpResult;
}
}
}
Примеры значений переменных, описанных в:
$latRange = array(3,7);
$lngRange = array(9,25);
$popDen = 'ColumnNameIWant'
$xlookup = 'Col1'
$xlookup = 'Col2'
логика моего запроса является то, что он находит все комбинации x
и y
, получает соответствующее $popDen
значение, и добавляет его в $result
. Результат определяется в начале моего скрипта и возвращается программой после этого цикла.
Я знаю, что раздел проблем - это мой цикл while, но я не совсем понимаю, как это исправить, поскольку я не совсем понимаю, как работают функции mysql_fetch_array
. Я также пробовал mysql_fetch_row
, и мой запрос тоже не работает.
Я знаю, комментируя различные фрагменты кода и передавая другие числа, что все работает; это просто этот кусок, который терпит неудачу.
Есть ли очевидные ошибки, которые я делаю?
Не могли бы вы пояснить, что вы делаете с переменной $ popDen? Кроме того, я бы использовал для каждого синтаксиса для заключительного цикла, поскольку это похоже на то, что вы ожидаете лучше. – Bnjmn
$ popDen содержит строку, которая является именем столбца. Я ожидаю, что одна ценность будет возвращена; Я новичок в синтаксисе и не уверен, что лучше всего использовать. – djq
Существуют ли $ xlookup и $ ylookup в любом месте? Вы не проверяете, удалось ли выполнить вызов. Если это плохо, тогда остальная часть кода тоже взорвется. по крайней мере, mysql_query (..) или die (mysql_error()) 'как метод отладки в секундах. –