@Seream220

Вывод картинок с mysql как?

Ребята может кто помочь
Пытаюсь с делать сайт и выходит ряд проблем.
Хочу к примеру вывести картинки на сайт с базы делаю всё так
$sql_img = $db->super_query("SELECT * FROM imgtop");
foreach($sql_img as $q)
  $img .= '<li  style="background-image: url({theme}/img/'.$sql_img['name'].');" class="overlay"></li> ';	
$tpl->set('{img}', $img);

Так он выводит картинку которая в базе и только одну так выводит он. В базе есть 5 картинок.
Как можно исправить это что бы выводил он одну картинку а не 2 сразу одно и туже?
Как можно сделать что бы он выводил с mysql все картинки которые там есть и они показывались?
Запрос с super_query нашёл готовый так как опыта не так много. Пока что учусь он написан так.
function super_query($query, $multi = false, $cache_prefix = false, $system_cache = false){
		
		//Если включен кеш, то проверяем на его существование
		
		
		//Если есть ответ с кеша
		if($data){
			
			$unSerData = unserialize($data);
			
			if($unSerData)
			
				return $unSerData;
				
			else
			
				return array();
			
		} else {

			if(!$multi) {

				$this->query($query);
				$data = $this->get_row();
				$this->free();	

				//Если включен кеш, то создаём его
				if($cache_prefix){
				
					$cache_rows = serialize($data);
					
					mozg_create_cache($cache_prefix, $cache_rows);
					
				}
				
				return $data;
				
			} else {
				$this->query($query);
				
				$rows = array();
				while($row = $this->get_row()) {
					$rows[] = $row;
				}

				$this->free();			

				//Если включен кеш, то создаём его
				
				
				return $rows;

			}
		
		}
	}


Может кто подсказать как всё исправить что бы всё работало нормально.
Картинку он выводит так.
<li  style="background-image: url(/system_sain/lk_system/system_tpl/komp/img/slider_1.jpg);" class="overlay"></li> 
<li  style="background-image: url(/system_sain/lk_system/system_tpl/komp/img/slider_1.jpg);" class="overlay"></li>


Ещё бы нашёл человека кто за отдельную плату будет помогать мне. То есть. Я буду что то пытаться сделать если что не получается что бы помогал объяснял. Желательно со связью. Опыт какой то есть. Желание учиться тоже. Есть сервер где тестирую(Свой комп))) Откуда пишу))
  • Вопрос задан
  • 1732 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Arik
1. Вроде второй аргумент говорит об кол-ве, поэтому можно попробовать сделать
$db->super_query("SELECT * FROM imgtop LIMIT 2", true)


2. Вы обходите циклом
foreach($sql_img as $q)
но адрес на картинку пытаетесь взять из массива $sql_img['name']
с первым пунктом нужно искать уже в $q
Ответ написан
@Mysterion
$sql_img = $db->super_query("SELECT * FROM imgtop");
foreach($sql_img as $q) {
    $img .= '<li  style="background-image: url({theme}/img/'.$q['name'].');" class="overlay"></li> ';
}
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
для начала - учите синтаксис и PSR, который не просто так придуман.
foreach($sql_img as $q) //здесь должна быть открывающая { 
  $img .= '<li  style="background-image: url({theme}/img/'.$sql_img['name'].');" class="overlay"></li> ';
// тут у вас цикл закончился и вернулся к новой итерации, это равноценно закрывающей }
// а так же нахрена вам $q если вы обращаетесь к $sql_img? и нахрена тогда вообще цикл? 
$tpl->set('{img}', $img); // тут вы получили элемент массива $sql_img['name'] в каждой строчке. соответственно будет одна картинка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы