#php
#php
Вопрос:
Это возвращает только последнюю из моих строк:
<?php
function all_infos_query() {
global $connection;
$query = "SELECT * ";
$query .= "FROM pages ";
$query .= "JOIN subjects ";
$query .= "ON pages.subject_id=subjects.id";
$infos_set = mysqli_query($connection, $query);
confirm_query($infos_set);
return $infos_set;
}
function infos_content() {
$infos_set = all_infos_query();
while($info = mysqli_fetch_assoc($infos_set)) {
$output = htmlentities($info["content"]);
$output .= " <br><br>";
}
mysqli_free_result($infos_set);
return $output;
}
?>
<?php echo infos_content() ?>
Если я повторяю его так, он работает (возвращает все строки):
<?php
$result = all_infos_query();
if($result === FALSE) {
echo "query failed: " . mysqli_error($connection);
}
else {
while($row = mysqli_fetch_array($result)) {
echo htmlentities($row['content']);
echo "<br><br>";
}
}
?>
Что мне нужно изменить в функции infos_content(), чтобы также получить все строки?
Большое спасибо!
Ответ №1:
Это потому, что вы переопределяете $ouput для каждого результата
while($info = mysqli_fetch_assoc($infos_set)) {
$output = htmlentities($info["content"]);
$output .= " <br><br>";
Вместо этого создайте $ouput вне цикла и добавьте к нему..
$output ='';
while($info = mysqli_fetch_assoc($infos_set)) {
$output .= htmlentities($info["content"]);
$output .= " <br><br>";