#php #mysql
#php #mysql
Вопрос:
В моем приложении я хочу загрузить все типы резервирования в a <select>
с помощью PHP. Reservationtype имеет 2 параметра (reservationtypeid, reservierungart). Я использую класс базы данных с этого сайта для упрощения команд SQL.
ReservationtypeModel
class Reservierungstyp
{
public function __construct($reservationtypeid, $reservierungsart){
$this->$reservationtypeid = $reservationtypeid;
$this->$reservierungsart = $reservierungsart;
}
}
В моей ReservationtypeModel я использую этот метод getAllReservationtypes:
public function getAllReservierungstypen(){
$db = new Database();
$results = $db->query('SELECT * FROM reservationtype')->fetchAll();
$rows = count($results);
$db->close();
$typesArray = array();
if($rows > 0){
foreach($results as $res){
$r = new Reservierungstyp($res['reservationtypeid'], $res['reservierungsart']);
$typesArray[] = $r;
}
}else{
return null;
}
return $typesArray;
}
Результаты имеют такой формат:
Reservierungstyp Object ( [1] => 1 [Training] => Training ) )
Но разве это не должно быть что-то вроде этого?
Reservierungstyp Object ( [reservationtypeid] => 1 [reservierungart] => Training ) )
Я не знаю, какая ошибка может вызвать эту ошибку. Если в моем коде есть другая ошибка, пожалуйста, дайте мне знать, я просто думаю, что этот ложный формат является причиной ошибки
Комментарии:
1. если что-то возвращает Object, это не JSON
2. Тогда в чем проблема? Я просто подумал, что это была проблема с json, извините за неправильную аннотацию.
3. действительно сложно сказать, поскольку вы не даете нам определение класса
Reservierungstyp
4. @FlashThunder я добавляю это прямо сейчас
5. хорошо, тогда это не имеет ничего общего с JSON, вам также нужно указать схему таблицы вашей базы данных
Ответ №1:
Я думаю, что ваш класс должен быть:
class Reservierungstyp
{
private $reservationtypeid;
private $reservierungsart;
public function __construct($reservationtypeid, $reservierungsart){
$this->reservationtypeid = $reservationtypeid;
$this->reservierungsart = $reservierungsart;
}
}
Обратите внимание на назначение __construct . Вы использовали $this->$reservationtypeid (доллар перед атрибутом класса), что означает, что вы ожидаете переменную, которая в данном случае действительно является параметрами конструктора.