Предупреждение: недопустимое смещение строки

Я новичок в oop, и у меня отображается изображение, когда у меня был один запрос к массиву (запрашивающий только URL-адрес изображения), но когда я добавил второе измерение в массив запроса (идентификатор изображения в таблице), я просто получил предупреждение сообщение «Предупреждение: недопустимое смещение строки». Я использовал mysqli_fetch_assoc в классе базы данных, а затем запустил результат через цикл foreach.

Это сообщение, которое я получаю.

Заранее спасибо за любую помощь.

код страницы

$user = $_SESSION['user_name'];

$query = "SELECT gallery_image, 'gallery_id' FROM gallery WHERE user_name = '$user' ORDER BY gallery_id DESC";
$result = $obj_db->get_gallery($query);
foreach ($result as $image ) {
foreach ($image as $key => $value) {
echo '<div class="gallery_item"><a href="proof.php?image='.$value['gallery_id'].'"><img src="'.$value['gallery_image'].'"></a></div>';
}
}

Код класса базы данных

function get_gallery($sql){
$obj_res = mysqli_query($this->obj_db_conn, $sql);
if(mysqli_errno($this->obj_db_conn)){
die ("Failed query: $strSql".$this->obj_db_conn->error);
}
$arResults = array();
while($arRow = mysqli_fetch_assoc($obj_res)){
$arResults[] = $arRow;

}
return $arResults;

0

Решение

Если твой var_dump вывод на $result дай это,

array(2) {
[0]=> array(2) {
["gallery_image"]=> ""["gallery_id"]=> ""}
[1]=> array(2) {
["gallery_image"]=> ""["gallery_id"]=> ""}
}

вам не нужно два вложенных foreach циклы в коде вашей страницы. Тот самый foreach петли может быть достаточно.

   $query = "SELECT gallery_image, gallery_id FROM gallery WHERE user_name = '$user' ORDER BY gallery_id DESC";
$result = $obj_db->get_gallery($query);
foreach ($result as $image ) {
echo '<div class="gallery_item"><a href="proof.php?image='.$image['gallery_id'].'"><img src="'.$image['gallery_image'].'"></a></div>';
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]