Как выводить фотографии из базы по категориям

Форум для тех кто начинает осваивать язык php.
albina111484
Сообщения: 31
Зарегистрирован: Сб апр 25, 2015 12:07 pm

Как выводить фотографии из базы по категориям

Сообщение albina111484 » Сб апр 25, 2015 12:12 pm

Ребята, помогите начинающему. У меня есть следующая таблица portfolio с ячейками: id, type, name, link. Как сделать, чтобы выводились картинки по type при нажатии на категорию, то есть, чтобы при нажатии на ссылку свадебное фото, выводились свадебные фотографии.
Вставить изображение нужно сюда:

Код: Выделить всё

<div id="viewport">
          <div id="box">
           {IMG}
          </div>
          </div>
Вот ссылки с категориями:

Код: Выделить всё

<div class="content">
            
            <ul id="sdt_menu" class="sdt_menu">
                
                <li>
             
                    <a href="#">
                        <img src="http://www.cyberforum.ru/images/3.png" alt=""/>
                        <span class="sdt_active"></span>
                        <span class="sdt_wrap">
                            <span class="sdt_link">&nbsp;Свадебное</span>
                            <span class="sdt_descr"><br>Свадьба-это бал любви</span>
                        </span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="http://www.cyberforum.ru/images/4.png" alt=""/>
                        <span class="sdt_active"></span>
                        <span class="sdt_wrap">
                            <span class="sdt_link">&nbsp;Love Story</span>
                            <span class="sdt_descr"><br>&nbsp;Любовь - это жизнь... </span>
                        </span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="http://www.cyberforum.ru/images/5.png" alt=""/>
                        <span class="sdt_active"></span>
                        <span class="sdt_wrap">
                            <span class="sdt_link">&nbsp;Семейное</span>
                            <span class="sdt_descr"><br>&nbsp;&nbsp;Семья — это дети...</span>
                        </span>
                    </a>
                </li>
                
        </div>
Вложения
Скриншот таблицы - 2015-04-24 14-42-06 Скриншот экрана.png
Скриншот таблицы - 2015-04-24 14-42-06 Скриншот экрана.png (178.5 КБ) 808 просмотров

Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2083
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 69 раз

Re: Как выводить фотографии из базы по категориям

Сообщение Slash » Сб апр 25, 2015 3:11 pm

* ! Пример на пальцах ! * ...
Делаем ссылку с переменной family на категорию, вида: index.php?p=photo&tag=family - это будет ссылка на категорию фотографий Семейное фото.
Ссылка вида: index.php?p=photo&tag=wedding - Молодожены на качелях. И так далее, для всех категорий.
Теперь нам надо принять переменную и выполнить запрос в базу, какие фотографии будем выводить. Делаем так:
В файл index.php вставляем:

Код: Выделить всё

if (isset($_GET['p'])) 
{
    if ($_GET['p'] == 'photo') 
    {
        $tag = isset($_GET['tag']) ? $_GET['tag'] : null;
        if (!$tag)
        {
		    echo 'Категория не найдена.';
        }
		# Составляем запрос
		$sql = "SELECT *
		    FROM portfolio
			WHERE type_portfolio = '$tag'";
		$query = mysqli_query($connect, $sql); 
		if (!$query) # Сработает при не удачи выполнения запроса
		{
		    mysqli_error();
		}
        else
        {
		    # Выводим полученные фото в цикле
			while($row = mysqli_fetch_assoc($query))
			{
			    echo '<img src="' . $row['link_portfolio'] . '">';
			}
        }		
    }
}
Цикл можно выводить в шаблоне:

Код: Выделить всё

<?php while($row = mysqli_fetch_assoc($query)): ?>
    <img src="<?=$row['link_portfolio']; ?>">
<?php endwhile; ?>
albina111484 писал(а):Вставить изображение нужно сюда:
Почитайте тему: Шаблоны в PHP, там описано, как сделать так, как Вам надо.

albina111484
Сообщения: 31
Зарегистрирован: Сб апр 25, 2015 12:07 pm

Re: Как выводить фотографии из базы по категориям

Сообщение albina111484 » Пн апр 27, 2015 2:07 am

Спасибо, сейчас буду разбираться :)

Добавлено спустя 1 час 55 минут 2 секунды:
Я запуталась :oops: При переходе на страницу "Портфолио" у меня выводятся из базы все картинки одна за одной по кругу. Из-за этого я не могу разобраться как применить ваш код. Поможете?)))
Есть файл connect.php, с ним все понятно, он подключает к базе.
Есть function.php (выводит картинки из базы):

Код: Выделить всё

<?php
function MyPhoto()
{
    $shablon = file_get_contents('photo.tpl');
    $str ='';

    $page = isset($_GET['page']) ? $_GET['page']:1;

    $page = (int)$page;
    $begin = ($page-1) * COUNT_IMG;
    $begin = ceil($begin);

    $SQL = "SELECT id, name_portfolio, link_portfolio FROM portfolio Limit $begin," . COUNT_IMG;
    $date = mysql_query($SQL);
    $count = mysql_affected_rows();

    if($count==0)
    {
        $str ='no date';
    }
    else
    {
        $mass_marker = array('{ID}','{NAME}','{IMG}');
        for($i=0; $i<$count; $i++)
        {
            $inf = mysql_fetch_array($date);
            $mass_marker_info = array($inf[0], $inf[1],$inf[2]);
            $str .=str_replace($mass_marker,$mass_marker_info,$shablon);
        }
    }
    return $str;
}
?>
Есть index.php:

Код: Выделить всё

<?php
define(COUNT_IMG, 10);
include('connect.php');
include('function.php');


    $page = file_get_contents('slider.tpl');
    $page = str_replace('{IMG}',MyPhoto(),$page);

    echo $page;
?>
Есть slider.tpl(шаблон):

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>Портфолио</title>
<link href="css/style.css" rel="stylesheet">
	<link href="css/screen.css" rel="stylesheet">
  <script src="js/lib/modernizr.min.js"></script>
</head>
	<body>
	
<a href="../index.php"><img id="main" src="img/logo3.png" class="logotip"></a>
<a href="../index.php"><img src="img/strelka.png" class="strelka"></a>
	
    
      <div id="page">
		<div id="viewport-shadow">

          <a href="#" id="prev" title="go to the next slide"></a>
          <a href="#" id="next" title="go to the next slide"></a>

          <div id="viewport">
          <div id="box">
           {IMG}
          </div>
          </div>

          <div id="time-indicator"></div>
        </div>
 <div class="content">
			
			<ul id="sdt_menu" class="sdt_menu">
				
				<li>
             
					<a href="#">
						<img src="images/3.png" alt=""/>
						<span class="sdt_active"></span>
						<span class="sdt_wrap">
							<span class="sdt_link">&nbsp;Свадебное</span>
						    <span class="sdt_descr"><br>Свадьба-это бал любви</span>
						</span>
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/4.png" alt=""/>
						<span class="sdt_active"></span>
						<span class="sdt_wrap">
							<span class="sdt_link">&nbsp;Love Story</span>
							<span class="sdt_descr"><br>&nbsp;Любовь - это жизнь... </span>
						</span>
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/5.png" alt=""/>
						<span class="sdt_active"></span>
						<span class="sdt_wrap">
							<span class="sdt_link">&nbsp;Семейное</span>
							<span class="sdt_descr"><br>&nbsp;&nbsp;Семья — это дети...</span>
						</span>
					</a>
				</li>
				<li>
					<a href="#">
						<img src="images/6.png" alt=""/>
						<span class="sdt_active"></span>
						<span class="sdt_wrap">
							<span class="sdt_link">&nbsp;&nbsp;Детское</span>
							<span class="sdt_descr"><br>&nbsp;&nbsp;Дети - это счастье...</span>
						</span>
					</a>
				</li>
			</ul>
		</div>
	</body>
</html>
И есть photo.tpl:

Код: Выделить всё

<div id="box">
<figure class="slide">
<img src="{IMG}">
</figure>
</div>

Аватара пользователя
Slash
Администратор
Сообщения: 2083
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 69 раз

Re: Как выводить фотографии из базы по категориям

Сообщение Slash » Пн апр 27, 2015 6:50 am

Попробуйте заменить строку запроса в файле: function.php:

Код: Выделить всё

$SQL = "SELECT id, name_portfolio, link_portfolio FROM portfolio Limit $begin," . COUNT_IMG;
на:

Код: Выделить всё

$SQL = "SELECT * FROM portfolio WHERE type_portfolio = '$tag' LIMIT $begin," . COUNT_IMG;
Теперь Вам надо забить переменную $tag названием категории, которая должна выводится на экран. Забить переменную, можно методом GET, как я написал выше, например, как то так: index.php?tag=family (тут адрес надо переписать под Ваш)

Код: Выделить всё

					<a href="index.php?tag=family">
						<img src="images/5.png" alt=""/>
						<span class="sdt_active"></span>
						<span class="sdt_wrap">
							<span class="sdt_link">&nbsp;Семейное</span>
							<span class="sdt_descr"><br>&nbsp;&nbsp;Семья — это дети...</span>
						</span>
					</a>
и в файле: function.php, после:

Код: Выделить всё

$page = isset($_GET['page']) ? $_GET['page']:1;
добавить:

Код: Выделить всё

$tag = isset($_GET['tag']) ? $_GET['tag'] : null;
if (!tag)
{
    $str = 'Категория не найдена';    
}
Данное решение проверить не могу, это всего лишь пример, как делать.

albina111484
Сообщения: 31
Зарегистрирован: Сб апр 25, 2015 12:07 pm

Re: Как выводить фотографии из базы по категориям

Сообщение albina111484 » Вт апр 28, 2015 12:07 am

Спасибо Вам оргоооомное!!!! Все получилось!!!! Вы мне очень помоги.

Аватара пользователя
Slash
Администратор
Сообщения: 2083
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 69 раз

Re: Как выводить фотографии из базы по категориям

Сообщение Slash » Вт апр 28, 2015 5:37 am

albina111484, всегда пожалуйста!
Я рад, что смог помочь. Зовите если что ;)

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость