2014-01-18 8 views
2

Когда множество объектов в PHP из базы данных, что является лучшим способом сделать это? Мои мысли - это варианты ...Заполнение объектов PHP из базы данных MYSQL

  • Запросить базу данных, просмотреть результаты и создать объект, основанный на данных.
  • Передайте дескриптор базы данных классу и запросите информацию в конструкторе.

Я склоняюсь к первому варианту для эффективности, чтобы избежать обширных запросов, тем не менее, поскольку есть много свойств для каждого объекта и PHP не хватает структур, кажется, глупо проходить в десятки параметров в конструктор.

Каков наиболее эффективный способ справиться с этим?

+0

Как насчет [ 'Reflection'] (http://php.net/reflection) с [' newInstanceArgs() '] (HTTP: // РУ2 .php.net/manual/en/reflectionclass.newinstanceargs.php) + шаблон 'Factory'? – BlitZ

+0

Звучит неплохо, но поскольку я не знаком ни с одним из них (промежуточные знания PHP), я понятия не имею, как это будет реализовано. –

+0

Я предполагаю, что у вас уже есть класс, который имеет атрибуты, сопоставленные точно с вашими столбцами таблицы. При этом все, что вам нужно сделать, это Query и выборки всех связанных строк из базы данных (один раз) и всех результатов в списке объектов один за другим, «возможно, используя цикл foreach». Теперь каждая ячейка в списке имеет строку базы данных, которая может быть использована в приложении. –

ответ

-2

Используйте инструкцию «while».

$result = mysqli_query($con,"SELECT * FROM Table1"); 

while($row = mysqli_fetch_array($result)) 
{ 
echo $row['Item1'] . " " . $row['Item2']; 
echo "<br>"; 
} 

Это проведет цикл while, чтобы проверить вашу базу данных по критериям. Поскольку мы SELECT * или «ALL», он будет проходить через всю БД. $ row присваивается как массив для нескольких элементов. Затем каждый цикл печатает Item1 и Item2 из БД.

Позвольте мне знать, если вам нужен более explanaition: D

+0

, конечно, вы можете эхо-элементы массива, как вы предпочитаете на странице, это просто пример того, как сделать их доступными. – hackn101

+0

Это вообще не отвечает на вопрос. Я более чем знаю, как запросить базу данных и зацикливать результаты. Мой вопрос заключается в том, как заполнить потенциально сотни объектов данными, в которых есть много свойств. –

+0

Я не понимаю, как это не помогает? Если вы знаете, как запрашивать и как цитировать и назначать их переменным/массивам, то как вы не знаете, как назначить это значение объекту. Вы спросили, какой путь будет лучше, и я дал вам свое мнение, не нужно грубить об этом. – hackn101

Смежные вопросы