Помагите решить проблему с выводом из базы фото в слайдер

Статус
В этой теме нельзя размещать новые ответы.

karen12

Постоялец
Регистрация
26 Фев 2012
Сообщения
108
Реакции
4
Есть база
Код:
CREATE TABLE IF NOT EXISTS `images` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `item_id` int(220) NOT NULL,
  `image_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `uploaded` datetime NOT NULL,
  `image_code` int(225) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=89 ;

и есть скрипт галереи
Код:
         <section>
       
          <div id="mygallery" class="gallery">
            <div class="images">
              <div class="active" style="background-image: url(img/01.jpg)"></div>
              <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
               <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
              <span class="left"></span>
              <span class="right"></span>
            </div>
            <div class="thumbs">
              <div class="active" style="background-image: url(img/01.jpg)"></div>
              <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
               <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
            </div>
          </div>
        </section>

как вывести рисунки в галерею из базы ?
 
В базу запрос
Код:
select * from images
Как делать запросы читайте Для просмотра ссылки Войди или Зарегистрируйся
Не буду повторяться, ибо 100500 раз всё разжёвано
Допустим, запрос сделан и из массива $query надо будет достать данные.
Тогда перебор данных может выглядеть так:
PHP:
            <div class="images">
<?php
foreach ($query as $key=>$value) {
      if ($key==0) {
          echo '            <div class="active" style="background-image: url('.$value['image_name'].')"></div>';
      }  else  {
          echo '            <div style="background-image: url('.$value['image_name'].')"></div>';
      }
}
?>
              <span class="left"></span>
              <span class="right"></span>
            </div>

Этот код заменит Ваш кусок:
HTML:
            <div class="images">
              <div class="active" style="background-image: url(img/01.jpg)"></div>
              <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
               <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
              <span class="left"></span>
              <span class="right"></span>
            </div>
С thumbs поступить аналогично.
 
В базу запрос
Код:
select * from images
Как делать запросы читайте Для просмотра ссылки Войди или Зарегистрируйся
Не буду повторяться, ибо 100500 раз всё разжёвано
Допустим, запрос сделан и из массива $query надо будет достать данные.
Тогда перебор данных может выглядеть так:
PHP:
            <div class="images">
<?php
foreach ($query as $key=>$value) {
      if ($key==0) {
          echo '            <div class="active" style="background-image: url('.$value['image_name'].')"></div>';
      }  else  {
          echo '            <div style="background-image: url('.$value['image_name'].')"></div>';
      }
}
?>
              <span class="left"></span>
              <span class="right"></span>
            </div>

Этот код заменит Ваш кусок:
HTML:
            <div class="images">
              <div class="active" style="background-image: url(img/01.jpg)"></div>
              <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
               <div style="background-image: url(img/02.jpg)"></div>
              <div style="background-image: url(img/03.jpg)"></div>
              <div style="background-image: url(img/04.jpg)"></div>
              <span class="left"></span>
              <span class="right"></span>
            </div>
С thumbs поступить аналогично.
Сделал все как Вы написали, но ничего не вывоится. Может я запрос к базе не правильно делаю?, Пожалуйста напишите как должен выглядеть запрос к базе на этом примере.
 
Сделал все как Вы написали, но ничего не вывоится. Может я запрос к базе не правильно делаю?, Пожалуйста напишите как должен выглядеть запрос к базе на этом примере.
Я Вам дал ссылку на пример. А вообще код зависит от используемого Вами драйвера БД.
Код вместо Вас написать нельзя, так как религия не позволяет делать бесплатно за человека работу, которую он делать даже не пытался. Почему я решил, что не пытался? Потому что не вижу кода попытки.
 
Пожалуйста напишите как должен выглядеть запрос к базе на этом примере.

Дружище, тебе правильно написали что подключение к БД зависит от установленных драйверов. Скорее всего у тебя есть PDO.
Проверить как собран php можно создав файлик с функцией phpinfo();

showtheworldhowtoscrewmycode.php
PHP:
<?php phpinfo();

На фотке из Гугла даже обведено что нужно
pdo_mysql.PNG



И вот если у тебя так же (стоит PDO и работает с MySQL), то вот как бы я достал даные из БД и вывел

PHP:
/**
*  DB Connection
*/
$conHost ='127.0.0.1';
$conDBName ='my_db_name';
$conUserName ='user_name';
$conUserPass ='user_pass';
$conEncoding ='utf8';


$db = new PDO("mysql:host='.$conHost.';dbname='.$conDBName.';charset='.$conEncoding.'", "'.$conUserName.'", "'.$conUserPass.'");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

/**
*  Get DB Data
*/

$dbData =[];
try {

  $sql ="SELECT * FROM images";
  $stmt = $db ->prepare($sql);
  $stmt->execute();

  $dbData = $stmt->fetch(PDO::FETCH_ASSOC);

} catch(PDOExcetion $e){
  echo $db -> errorCode(); print_r($db -> errorInfo());
}

/**
*  Shape HTML
*/

$imageFieldCodeName ='image_code';
$imgHtmlOut ='';

foreach ($dbData as $key=>$value) {
  if ($key==0) {
  $imgHtmlOut .='  <div class="active" style="background-image: url(img/'.$value[$imageFieldCodeName].')"></div>'.PHP_EOL;
  }  else  {
  $imgHtmlOut .='  <div style="background-image: url(img/'.$value[$imageFieldCodeName].')"></div>'.PHP_EOL;
  }
}

$htmlOut ='<section>'.PHP_EOL;
$htmlOut .='<div id="mygallery" class="gallery">'.PHP_EOL;

  // Images
  $htmlOut .='  <div class="images">'.PHP_EOL;
  $htmlOut .=  $imgHtmlOut.PHP_EOL;
  $htmlOut .='  <span class="left"></span>'.PHP_EOL;
  $htmlOut .='  <span class="right"></span>'.PHP_EOL;
  $htmlOut .='  </div>'.PHP_EOL;

  // Thumbs
  $htmlOut .='  <div class="thumbs">'.PHP_EOL;
  $htmlOut .=  $imgHtmlOut.PHP_EOL;
  $htmlOut .='  </div>'.PHP_EOL;

$htmlOut .='</div>'.PHP_EOL;
$htmlOut .='</section>'.PHP_EOL;

/**
*  Print Out
*/

echo $htmlOut;

Конечно блок с подключением должен быть вынесен в отдельный файл, а уж пароли тем более в совсем другом месте должны храниться.

В этом примере создается одно соединение $db. Думаю очевидно что можно делать много разных с разными пользователями (правами), паролями, хостами... :)
 
Последнее редактирование:
И вот если у тебя так же (стоит PDO и работает с MySQL), то вот как бы я достал даные из БД и вывел
Мне в вопросе другое непонятно. Ведь заносит же он в бд данные, чтобы потом выводить?
Значит, подсмотреть в файл, где подключение и вывести по аналогии не должно быть проблемой?
 
Мне в вопросе другое непонятно. Ведь заносит же он в бд данные, чтобы потом выводить?
Значит, подсмотреть в файл, где подключение и вывести по аналогии не должно быть проблемой?

Верно. Я дал рабочий пример подключения через PDO и вывода данных. Если же не нарушать архитектуру приложения, то действительно следует использовать предусмотренные методы. Изучите доки или сами найдите. В этом топике вы предоставили только структуру таблицы в БД и HTML. Исходя из этого вам и предоставили ответы.
 
я так понимаю, ТС вообще слаб. Ему бы реально почитать инфу или лучше и почитать и видео на ютубе глянуть с комментами кодов.
 
Сделал все как Вы написали, но ничего не вывоится. Может я запрос к базе не правильно делаю?, Пожалуйста напишите как должен выглядеть запрос к базе на этом примере.
PHP:
<?php
## Вписываете свои значения базы данных
$host = "localhost";
$user = "username";
$password = "password";
$dbname = "database";

# Подключение к базе данных
$mysqli = new mysqli($host,$user ,$password , $dbname);
if ($mysqli->connect_errno) {
 echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

# Запрос информации
$res = $mysqli->query("SELECT * FROM images");


?>

 <div class="images">
<?php
while ($row = $res->fetch_assoc()) {
 echo ' <div style="background-image: url('.$row['image_name'].')"></div>';
}
?>
 <span class="left"></span>
 <span class="right"></span>
 </div>

P.s. если image_name в базе хранится как 02 или 03, то будет так
PHP:
echo ' <div style="background-image: url(img/'.$row['image_name'].'.jpg)"></div>';
 
Последнее редактирование модератором:
<?php
## Вписываете свои значения базы данных
$host = "localhost";
$user = "username";
$password = "password";
$dbname = "database";

# Подключение к базе данных
$mysqli = new mysqli($host,$user ,$password , $dbname);
if ($mysqli->connect_errno) {
echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

# Запрос информации
$res = $mysqli->query("SELECT * FROM images");


?>

<div class="images">
<?php
while ($row = $res->fetch_assoc()) {
echo ' <div style="background-image: url('.$row['image_name'].')"></div>';
}
?>
<span class="left"></span>
<span class="right"></span>
</div>

P.s. если image_name в базе хранится как 02 или 03, то будет так
echo ' <div style="background-image: url(img/'.$row['image_name'].'.jpg)"></div>';
Можете помочь мне в этом разделе Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху