Имя переменной PHP включает переменную

#php #variables

#php #переменные

Вопрос:

Я пытаюсь установить переменные $upkeep_1, $ upkeep_2 и т.д., используя цикл. У меня есть этот код:

 $sql_result2 = mysql_query("SELECT * FROM houses_db", $db); 
while ($rs2 = mysql_fetch_array($sql_result2)) {
   $upkeep_{$rs2[type]} = (int) $rs2[upkeep]; 
   }

echo $upkeep_3 . "<br>";
  

$rs2[type] — это числовое поле, начинающееся с единицы и идущее до 8.

Однако этот код ничего не выводит, несмотря на то, что $ rs [upkeep] равен 3000. Что я делаю не так?

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

1. Начните с присвоения вашим переменным значимых имен

Ответ №1:

Почему бы не использовать массив?

 $sql_result2 = mysql_query("SELECT * FROM houses_db", $db); 
while ($rs2 = mysql_fetch_array($sql_result2)) {
    $upkeep[$rs2['type']] = (int) $rs2['upkeep']; 
}

echo $upkeep[3] . "<br>";
  

Ответ №2:

Вы уверены, что хотите это сделать? Знаете ли вы о массивах 🙂 ?

В любом случае попробуйте что-то вроде этого:

 $sql_result2 = mysql_query("SELECT * FROM houses_db", $db); 
while ($rs2 = mysql_fetch_array($sql_result2)) {
   eval("$upkeep_".$rs2[type]." = (int) ".$rs2[upkeep].""); 
}

echo $upkeep_3 . "<br>";
  

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

1. Существует проблема «То, что OP asked_for / хотел / необходимо», которую вы описываете на своей странице about

2. В вашем ответе нет НИЧЕГО подобного.