Вопрос переменной PHP - PullRequest
       1

Вопрос переменной PHP

0 голосов
/ 24 декабря 2010

Это работает:

$customerBox = mysql_query("MY SQL STATEMENT HERE");  
$boxRow = mysql_fetch_array($customerBox);  

$customerBox = mysql_query("MY SQL STATEMENT AGAIN");
while($item = mysql_fetch_assoc($customerBox)) {
      foreach ($item as $columnName => $value) {
          if (empty($value)) {
               print $columnName;
          }
      }
}

Это не:

$customerBox = mysql_query("MY SQL STATEMENT HERE");  
$boxRow = mysql_fetch_array($customerBox);  

while($item = mysql_fetch_assoc($customerBox)) {
      foreach ($item as $columnName => $value) {
          if (empty($value)) {
               print $columnName;
          }
      }
}

Почему?Наверное, я пока не понимаю, как работают переменные.

Ответы [ 3 ]

5 голосов
/ 24 декабря 2010

Проблема в том, что, поскольку запрос возвращает одну строку, нечего извлекать.

функции mysql_fetch_* извлекают строку current и затем передвигают указатель строки на следующуюодин.Если текущей строки не существует, она возвращает false.Поэтому при вашем втором вызове mysql_fetch_assoc указатель находится на 2-й строке, но эта строка не существует, поэтому ваш цикл не выполняется.У вас есть две опции:

Хорошо: удалите цикл while и измените foreach, чтобы вместо него использовать $boxRow:

foreach ($boxRow as $columnName => $value) {
    //...
}

Ok: перемотать указатель строки MySQL с помощью mysql_data_seek:

$boxRow = mysql_fetch_array($customerBox);
mysql_data_seek($customerBox, 0);
while(...){
1 голос
/ 24 декабря 2010

Это может иметь большее отношение к mysql_fetch_array (), чем к вашей переменной.Попробуйте поставить это:

mysql_data_seek ( $customerBox , 0 );

прямо перед началом цикла while.Мне любопытно увидеть результат.

0 голосов
/ 24 декабря 2010

$ customerBox = mysql_query ("МОЕ ЗАЯВЛЕНИЕ НА SQL здесь");
$ boxRow = mysql_fetch_array ($ customerBox);

while ($ item = mysql_fetch_field ($ customerBox)) { foreach ($ item как $ columnName => $ value) { if (empty ($ value)) { печать $ columnName; } } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...