Функция scanf
автоматически удаляет пробелы, прежде чем пытаться проанализировать другие вещи, кроме символов. %c
, %n
, %[]
являются исключениями, которые не удаляют ведущие пробелы. gets
читает новую строку, оставленную предыдущим scanf
. Поймайте новую строку, используя getchar();
scanf("%d", &a);
getchar(); // catches the newline character omitted by scanf("%d")
gets(b);
Прежде всего, это школьное задание, удачи.
Возвращаясь к вашему вопросу.
Вы инициализировали $posts
перед циклом.
И вы должны добавлять выход из цикла в $posts
на каждой итерации.
Вы не объединяете свои выходные данные в цикле.
Итак, при каждом цикле времени значение $posts
обновляется до самого последнего.
И, следовательно, будут показаны значения только из последней итерации, поскольку она является самой последней.
Итак, чтобы добавить конкатенацию, измените следующую строку на:
$posts .= "<div><h2><a href='view_post.php?pid=$id'>$title</a></h2><h3>$date</h3><p>$output</p>$admin</div>";
Пожалуйста, обратите внимание на дополнительный .
перед =
, который является оператором конкатенации в PHP.
Надеюсь, это поможет.