Я новичок в 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;
Если твой 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>';
}
Других решений пока нет …