#php #html #mysql
#php #HTML #mysql
Вопрос:
Я создаю веб-сайт и хотел бы разрешить администратору добавлять изображение, которое извлекается из базы данных MySQL, и отображать его над текстом новостного блога, который также добавляется. Я могу заставить его отображать изображения, а также текст, но они сгруппированы вместе (изображения с изображениями и текст с текстом). Как я могу заставить мой веб-сайт отображать последнее изображение, введенное над последней добавленной текстовой записью?
<?php
$sql = "SELECT imageId FROM output_images ORDER BY imageId DESC";
$result = mysqli_query($dbc, $sql);
?>
</BODY>
</HTML>
<div class="brown-container-fluid text-left">
<div class="text-home">
<h2><strong>Pine Lane News</strong></h2><br/>
<?php
if ($row = mysqli_fetch_array($result)) {
?>
<div style="text-align:center;">
<img style="max-width:300px; max-height:300px;"
src="imageView.php?image_id=<?php echo $row["imageId"]; ?>"/><br/>
</div>
<?php
}
$query = 'SELECT * FROM entries ORDER BY date_entered DESC';
if ($r = mysqli_query($dbc, $query)) { // Run the query.
// Retrieve and print every record:
while ($row = mysqli_fetch_array($r)) {
print
"<dl><dt><h3><strong>{$row['title']}</strong></h3></dt>
<dd>{$row['entry']}<br /><br />n</dd></dl>";
}
} else { // Query didn't run.
print '<p style="color: red;">Could not retrieve the data because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>';
} // End of query IF.
mysqli_close($dbc); // Close the database connection.
?>
</div>
</div>
Комментарии:
1. Если вы знаете, что получите одинаковое количество результатов от каждого запроса, вы можете извлечь все результаты из одного, а затем, выполняя итерацию через другой, получить доступ к строке из первого набора результатов с тем же индексом, что и текущая строка в итерации.
Ответ №1:
Кое-что, что я придумал очень быстро, не тестировалось.
<?php
while($row = mysqli_fetch_array($result)){
echo '<div style="text-align:center;">';
echo '<img style="max-width:300px; max-height:300px;"';
echo 'src="imageView.php?image_id="'.$row["imageId"].'"/><br/>';
echo '</div>';
$query = 'SELECT * FROM entries ORDER BY date_entered DESC LIMIT 1';
if ($r = mysqli_query($dbc, $query)) { // Run the query.
while ($row = mysqli_fetch_array($r))
{
print
"<dl><dt><h3><strong>{$row['title']}</strong></h3></dt>
<dd>{$row['entry']}<br /><br />n</dd></dl>";
}
} else { // Query didn't run.
print '<p style="color: red;">Could not retrieve the data because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>';
} // End of query IF.
mysqli_close($dbc); // Close the database connection.
?>
Комментарии:
1. Это привело бы к получению одной и той же строки из
entries
для каждойoutput_images
записи.2. @PatrickQ да, я не уловил этого раньше… ошибка новичка. Только что увидел ваш комментарий, и кажется, что это был бы единственный выход