За последние 24 часа нас посетили 11527 программистов и 717 роботов. Сейчас ищут 306 программистов ...

Слайдеры для мобильных устройств - Вывод из базы данных

Тема в разделе "PHP и базы данных", создана пользователем newstarter, 22 янв 2013.

  1. newstarter

    newstarter Активный пользователь

    С нами с:
    3 сен 2012
    Сообщения:
    51
    Симпатии:
    0
    Здравствуйте, уважаемые Умельцы форума.

    Прошу вас помочь в решении задачи, описанной ниже, не столько словом, сколько делом (т.е. внесением исправлений в приведенный ниже код), поскольку, по моему опыту, ссылки на залежи безусловно ценной, но сложной информации не помогают, да и времени, если признаться, очень мало. СПАСИБО за понимание и Участие!!!

    Проблема касается правильного вывода из базы данных трех слайдеров с изображениями для мобильных устройств.

    Сразу стоит заметить, я тестирую страницу с Денвера через ресурс ipadpeek.com (вы можете использовать свой на усмотрение, делюсь для лучшего понимания ситуации).

    Имееются 2 таблицы MySQL - первая gal_cats (3 категории-слайдера) и вторая gal_pics (содержащиеся в категориях изображения).

    Первоначальный код:
    Код (Text):
    1.  
    2.             <section id="main">
    3.  
    4.                 <div class="clearfix"></div>
    5.                 <div class="gallery-slider">
    6.                     <div class="year">2011</div>
    7.                     <ul id="slider1">
    8.                         <li><img src="images/large/large-img1.jpg" alt="" width="435" height="540"></li>
    9.                         <li><img src="images/large/large-img2.jpg" alt="" width="435" height="540"></li>
    10.                         <li><img src="images/large/large-img3.jpg" alt="" width="435" height="540"></li>
    11.                     </ul>
    12.                 </div>
    13.                 <div class="clearfix"></div>
    14.                 <div class="gallery-slider">
    15.                     <div class="year">2010 and earlier</div>
    16.                     <ul id="slider2">
    17.                         <li><img src="images/large/large-img4.jpg" alt="" width="435" height="540"></li>
    18.                         <li><img src="images/large/large-img5.jpg" alt="" width="435" height="540"></li>
    19.                         <li><img src="images/large/large-img6.jpg" alt="" width="435" height="540"></li>
    20.                         <li><img src="images/large/large-img7.jpg" alt="" width="435" height="540"></li>
    21.                     </ul>
    22.                 </div>
    23.                
    24.             </section>
    Благодарю всех и любого, кто откликнется.
     
  2. newstarter

    newstarter Активный пользователь

    С нами с:
    3 сен 2012
    Сообщения:
    51
    Симпатии:
    0
    Попытался самостоятельно вывести слайдеры из БД в цикле, но запутался с измененным кодом:

    Код (Text):
    1.  
    2.             <section id="main">
    3.            
    4. <?php
    5. $dbhost = 'localhost';
    6. $dbuser = 'slider_admin';
    7. $dbpass = '12345';
    8. $dbname = 'slider';
    9. $db = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
    10. if($db->connect_errno) {
    11.     echo('Connect error: ' . $db->connect_error);
    12.     exit;
    13. }
    14. $db->set_charset('utf8');
    15. $sql = "SELECT `gal_cats`.`slider` AS `year_no`, `gal_pics`.*
    16. FROM `gal_cats` LEFT JOIN `gal_pics` ON (`gal_cats`.`id` = `gal_pics`.`cat`)
    17. ORDER BY `gal_cats`.`id`, `gal_pics`.`title` ASC";
    18. $res = $db->query($sql) or exit($db->error);
    19. $html = '';
    20. if($res->num_rows > 0) {
    21.     $prev = 0;
    22.     while($row = $res->fetch_assoc()) {
    23.         if($prev !== $row['cat']) {
    24.             if($prev !== 0) {
    25.                 $html .= '';
    26.             }
    27.    
    28.             $html .= '<div class="clearfix"></div>
    29.                 <div class="gallery-slider">
    30.                     <div class="year">' . htmlspecialchars($row['year_no']) . '</div>
    31.                      ';
    32.             $prev = $row['cat'];
    33.         }
    34.         $slider = htmlspecialchars($row['slider'], ENT_QUOTES, 'utf-8');
    35.         $title = htmlspecialchars($row['title'], ENT_QUOTES, 'utf-8');
    36.         $bgimg = htmlspecialchars($row['img'], ENT_QUOTES, 'utf-8');
    37.         $html .= "<ul id=\"{$slider}\">
    38.                         <li><img src=\"{$bgimg}\" alt=\"{$title}\" width='435' height='540'></li>
    39.                 ";
    40.     }
    41.     $html .= '</ul>
    42.                 </div>';
    43. } else {
    44.     $html .= 'Нет картинок';
    45. }
    46. echo($html);
    47. ?>
    48.  
    49.  
    50.             </section>
    Проверив страницу вышеуказанным тестером, получаю:
    1. только один слайдер с его названием-заголовком, но не вывод всех заголовков и слайдеров в цикле;
    2. правильно отображаются только два первых изображения, остальные кажутся "похороненными" за вторым изображением((

    Вопрос: какие исправления следует внести в код ниже, чтобы добиться вывода в цикле?

    *Примечание: Использовал код форумчанина Собачник, за что огромное ему СПАСИБО. С прошлой галереей подошло идеально, с этой возникла заминка.

    При необходимости могу выслать зип со стилями и js на электронную почту.