Извлечение записей из функции PHP

#php #mysql #function #records

#php #mysql #функция #записи

Вопрос:

Следующий код взят из выпадающего списка perfect working, а затем, когда я помещаю его в функцию, он ее ломает! Я делаю что-то не так здесь?

 <?php

require "connect.php";
//create country lists

function records() {
  $countryOptions = '';
  $query = "SELECT DISTINCT country FROM regions";
  $result = mysql_query($query);
  if (!$result) {
    $countryOptions = "<option>Error Retrieving Records</option>n";;
    }
  else {
    while ($row=mysql_fetch_assoc($result)) {
      $countryOptions .= "<option value="{$row['country']}">";
      $countryOptions .= "{$row['country']}";
      $countryOptions .= "</option>n";
      }
    }
  }

echo records();

?>
  

Комментарии:

1. Вы ничего не возвращаете из функции — $countryOptions будут потеряны

2. ;; в строке 11 действительно нет необходимости 😉

Ответ №1:

Вы нигде не выводите $countryOptions .

Либо добавить

 echo $countryOptions;
  

в конце функции или, что еще лучше, используйте

 return $countryOptions;
  

и вызовите функцию следующим образом:

 echo records();
  

(или реализуйте это в соответствии с вашими конкретными потребностями — трудно сказать, как вы используете это в своем собственном коде)

Комментарии:

1. О, мой бог. Я не могу поверить, что это была глупая ошибка : ( Спасибо за помощь. Иногда вы просто не можете увидеть, если слишком долго смотрите на это.

2. Происходит 😉 С другой стороны — если проблемы возникают после переноса кода в функцию, обычно следует искать проблему с областью видимости переменной — как на входе, так и на выходе функции.

3. НЕТ, нет, теперь это работает идеально. Я даже уже добавил некоторые переменные. Я просто забыл вернуть его, в этом и заключалась вся проблема 🙂