#php #pdo
#php #pdo
Вопрос:
У меня есть этот цикл while.
while($show = $queryActivities->fetch()){ echo $show["name"]."<br>"; }
Это берет данные из запроса и выводит имена..
Теперь возможно ли создать пользовательские / поддельные данные? Я хотел бы создать один, если в $queryActivities нет данных / оператора, тогда он должен создать пользовательский оператор с именем «name» со значением «Здесь ничего ..»
Возможно ли это? Вы можете это сделать?
Я знаю, что могу сделать if($queryActivities->rowCount == 0){ echo "Nothing here" ; }
Но я больше думал о создании пользовательских данных, поэтому он запускает цикл while с пользовательскими данными, который создается только в том случае, если в $queryActivities ничего нет.
Что-то вроде..:
if($queryActivities->rowCount == 0){
# ..MAKE CUSTOM DATA..
# ..SOMETHING LIKE THIS MAYBE: ..
# $queryActivities = MAKE ARRAY WITH name => 'Nothing here'.. (just a thought)
}
while ($show = $queryActivities->fetch()){
echo $show["name"]."<br>";
}
Что-то вроде этого, именно то, что я представляю, хотя я действительно не знаю, как.
Спасибо
Комментарии:
1. Итак, если в $queryActivities нечего извлекать (строк 0), то создайте поддельный / пользовательский оператор с name = ‘nothing here’, чтобы он мог запустить цикл хотя бы один раз и сказать, что там ничего нет..
2. вы можете просто сделать это
if($queryActivities->rowCount == 0) { echo ...; return; }
, не кажется необходимым подделывать цикл
Ответ №1:
Извлеките ваши данные в массив, а затем распечатайте их. В промежутке между этими двумя шагами вы можете изменить его по желанию.
В любом случае, это более упорядоченно. Мне не нравится извлекать данные из базы данных и отображать их за один шаг
У вас может быть либо if / else, который проверяет, пуст ли массив, и печатает сообщение по умолчанию, либо создает запись по умолчанию со свойством ‘name’, которая затем отображается с тем же циклом вывода, что и обычные данные. Я бы предпочел первый, но мы сделаем второй стиль, поскольку это то, о чем вы спрашивали.
Вот одно простое решение.
$activities=array();
while($show = $queryActivities->fetch()){ $activities[]=$show; }
if(empty($activities)){ $activities=array(array('name'=>'None Found')); }
foreach($activities as $activity){
echo $activity['name']."<br>";
}
Я думаю, что лучшим решением будет просто использовать if / else. Однако, в зависимости от вашего стиля вывода, это может потребовать большего количества повторений кода.
$activities=array();
while($show = $queryActivities->fetch()){ $activities[]=$show; }
if(empty($activities)){
echo "None found <br>";
}
else{
foreach($activities as $activity){
echo $activity['name']."<br>";
}
}
Комментарии:
1. Спасибо за ответ, правда в том, что у меня есть не просто echo $show[«name»].»<br>»; но с css-полем, с именем, картинкой, датой, сообщением и т.д. из $ show. И я подумал, что вместо дублирования (кода в while) всего поля и т.д. (и вставки в if (пустой)), возможно, просто создайте пользовательские данные и заполните эти поля (имя, изображение) и т.д., чтобы закодировать его умнее. думаю, вы не можете этого сделать
2. @Karem Конечно, я понимаю, что ты имеешь в виду. Это то, о чем я думал, когда упомянул ‘это может потребовать большего повторения кода.’. Затем используйте первый стиль и создайте набор данных по умолчанию.