Функция mysqli_stmt_get_result
опирается на функцию, которая доступна только при использовании указанного c адаптера (mysql собственный драйвер [который на самом деле лучше, но некоторые хостинг-провайдеры не любят некоторые из его функций или просто предоставляют очень old php ...] вместо libmysqlclient).
Лучше всего начать с изучения PDO
, но если вы хотите придерживаться mysqli
, тогда я также рекомендую использовать объект- ориентированный стиль - хороший пример, который вы можете найти здесь: https://www.php.net/manual/en/mysqli-stmt.execute.php
Но просто чтобы исправить ваш файл:
0) Основная проблема (с этим старым libmysqlclient) это то, что вам нужно точно знать, сколько столбцов у вас будет - я вижу, что вы хотите три: - imgFullNameGallery - titleGallery - descGallery
Затем измените ваш запрос из:
$sql = "SELECT * FROM gallery ORDER BY orderGallery DESC;";
на:
$sql = "SELECT imgFullNameGallery, titleGallery, descGallery FROM gallery ORDER BY orderGallery DESC;";
1) заменить строку
$result = mysqli_stmt_get_result($stmt);
на:
mysqli_stmt_bind_result($stmt, $imgFullNameGallery, $titleGallery, $descGallery);
Теперь заменить:
while ($row = mysqli_fetch_assoc($result)) {
echo '<a href="#">
<div style="background-image: url(img/gallery/'.$row["imgFullNameGallery"].');"></div>
<h3>'.$row["titleGallery"].'</h3>
<p>'.$row["descGallery"].'</p>
</a>';
}
на:
while (mysqli_stmt_fetch($stmt)) {
echo '<a href="#">
<div style="background-image: url(img/gallery/'.$imgFullNameGallery.');"></div>
<h3>'.$titleGallery.'</h3>
<p>'.$descGallery.'</p>
</a>';
}
Как видите, каждый вызов fetch
заполнит связанные переменные * 103 4 *, $titleGallery
и $descGallery
с соответствующими значениями из строки базы данных. (переменные могут фактически называться по-разному, это не имеет значения, их значение имеет значение)
Также ниже, если вы не используете его повторно, обязательно закройте устав:
mysqli_stmt_close($stmt);
и связь:
mysqli_close($link);
Дайте мне знать, поможет ли это вам. Кроме того: тот факт, что вам нужно сделать это, объясняется только тем, что ваш хостинг-провайдер ограничивает вашу функциональность.