#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. НЕТ, нет, теперь это работает идеально. Я даже уже добавил некоторые переменные. Я просто забыл вернуть его, в этом и заключалась вся проблема 🙂