@Hellows

Как вывести данные с функции pdo?

Добрый вечер. Начал изучать pdo и меня интересует следующий вопрос:
я создал файл function.php и в нем хочу прописывать функции, а затем выводить по запросу.
Также у меня есть файл index.php, где собственно находится верстка. Я не хочу писать в эту верстку ничего лишнего из php, но надо вывести список всех студентов. Подскажите, как правильно делается?
В function.php написан следующий код
function get_student_list() {
  $stmt = $pdo->query('SELECT studentFROM kafedra');
  $stmt->execute();
  foreach ($stmt as $row)
  {
      echo $row['name'] . "\n";
  }  
  
}

А в index.php написана следующая верстка(мы выводим список чекбоксов для выборки):
<div class="checkbox">
	<input type="checkbox" id="c1" name="cc" />
	<label for="c1">
	  <span class="filter_name">Петров</span>
	</label>
</div>
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
@dk-web
Не буду грузить вас фреймворками, mvc и т.д. - тут есть более опытные спецы...
Но вкратце не совсем верно...

После execute нужно сделать следующее:
$students = $stmt->fetchAll(PDO::FETCH_ASSOC); //выбрать все студентов

Если вы хотите перебирать, то это делается так:
while ($row=$stmt->fetch()) {
   $students[$row['id']]=$row;
}

главное в конце функции пропишите возврат значений - return $students;
Я бы сделал три файла:
index.php - общий:
<?php
include ('function.php');
$students=get_student_list();
include('form_element.php');

файл form_element.php
<div class="checkbox">
 <?php foreach ($students as $id => $student): ?>
<input type="checkbox" id="student_<?php echo $id;?>" value="<?php echo $id; ?>" name="students[]" />
  <label for="student_<?php echo $id; ?>">
    <span class="filter_name"><?php echo $student['surname']; ?></span>
  </label>
<?php endforeach; ?>
</div>


ну и третий - ваши функции...
только не забудьте return
Как-то так.... но это только начало)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
верните из функции массив - и в index.php уже пройдитесь по нему foreach-ем, формируя список с чекбоксами. Хотя ИМХО функция тут надумана.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы