Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: пропустить теги в функции while
 
 автор: kvins   (30.12.2011 в 19:27)   письмо автору
 
 

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

Вот сам слайдер.


<div id='slidorion'>
    <div id='slider'>
    <div class='slider-image' rel='section1'>
            <img src='$topo[img]' width='250'  />
        </div>

        
        <div class='slider-image' rel='section2'>
            <img src='2.jpg' width='500' />
        </div>
        <div class='slider-image' rel='section3'>
            <img src='3.jpg' width='500'  />
        </div>
    </div>
    <div id='accordion'>
        <div class='header'><a class='slider-link' rel='section1'>$topo[title]</a></div>
        <div class='content'>
            $topo[descrip]<br>Продолжение <a href='news_look.php?news=$topo[id]'>тут</a>
        </div>
        <div class='header'><a class='slider-link' rel='section2'>Темный рыцарь</a></div>
        <div class='content'>
            <!-- Содержание располагается здесь -->
        </div>
        <div class='header'><a class='slider-link' rel='section3'>Типа крутые легавые</a></div>
        <div class='content'>
            <!-- Содержание располагается здесь -->
        </div>
    </div>
</div>

  Ответить  
 
 автор: cheops   (30.12.2011 в 19:35)   письмо автору
 
   для: kvins   (30.12.2011 в 19:27)
 

>Нужно вывести 3 популярные темы
> ...
>но там есть блоки которые не должны повторятся.
Откуда берутся три популярные темы?

  Ответить  
 
 автор: kvins   (30.12.2011 в 19:43)   письмо автору
 
   для: cheops   (30.12.2011 в 19:35)
 

$pop= mysql_query ("SELECT id,title,descrip,img FROM news ORDER BY coms DESC LIMIT 3");

  Ответить  
 
 автор: kvins   (30.12.2011 в 19:48)   письмо автору
 
   для: kvins   (30.12.2011 в 19:43)
 

к примеру

<div id='slider'>
и
<div id='accordion'>
не должны выводится 3 раза,но этот код мешает сделать функцию while

  Ответить  
 
 автор: cheops   (30.12.2011 в 19:56)   письмо автору
 
   для: kvins   (30.12.2011 в 19:48)
 

Хм... не очень понимаю в чем загвоздка, так вынесите эти тэги за пределы цикла while(). Или сложность с чем-то другим?

  Ответить  
 
 автор: cheops   (30.12.2011 в 19:54)   письмо автору
 
   для: kvins   (30.12.2011 в 19:43)
 

Правильно ли я понимаю, что запрос возвращает повторяющиеся значения или все записи уникальны, а дублирование происходит где-то в другом месте?

  Ответить  
 
 автор: kvins   (30.12.2011 в 20:23)   письмо автору
 
   для: cheops   (30.12.2011 в 19:54)
 

этот код который я показал , он без функции while , но если я ее начну использовать, то начнут появляться повторяющиеся теги типо этого <div id='accordion'>
которые должны быть только 1 раз .

Получается код состоит из 2 блоков.

Первый блок картинки , блок закрывается /

Второй блок описание.

А между окончанием картинок и началом описания , открывается второй блок который не должен повторятся 3 раза

  Ответить  
 
 автор: cheops   (30.12.2011 в 20:29)   письмо автору
 
   для: kvins   (30.12.2011 в 20:23)
 

А вы сделайте так, чтобы такие повторяющиеся конструкции не появлялись
<div id='slidorion'> 
    <div id='slider'> 
    <div class='slider-image' rel='section1'> 
            <img src='$topo[img]' width='250'  /> 
        </div> 

         
        <div class='slider-image' rel='section2'> 
            <img src='2.jpg' width='500' /> 
        </div> 
        <div class='slider-image' rel='section3'> 
            <img src='3.jpg' width='500'  /> 
        </div> 
    </div> 
    <div id='accordion'> 
        <div class='header'><a class='slider-link' rel='section1'>$topo[title]</a></div> 
        <div class='content'> 
            $topo[descrip]<br>Продолжение <a href='news_look.php?news=$topo[id]'>тут</a> 
        </div> 
        <?php
            
while(...)
            {
               ...
             
?>
        <div class='header'><a class='slider-link' rel='section2'>Темный рыцарь</a></div> 
        <div class='content'> 
            <!-- Содержание располагается здесь --> 
        </div>
              <?php 
               
...
            }
         
?>
    </div> 
</div>
PS Понятно, что внутри цикла нужно подставить свои значения.

  Ответить  
 
 автор: kvins   (30.12.2011 в 20:41)   письмо автору
 
   для: cheops   (30.12.2011 в 20:29)
 

тогда функция while должна быть не только где вы показали но и среди этого

<div class='slider-image' rel='section2'>
<img src='2.jpg' width='500' />
</div>

а между ними не должно повторятся

разве можно whlle поделить на 2 раза ?

  Ответить  
 
 автор: cheops   (30.12.2011 в 21:00)   письмо автору
 
   для: kvins   (30.12.2011 в 20:41)
 

А.... понял. Тогда в цикле while() сформируйте вспомогательный массив с данными, а потом просто в двух местах создайте два цикла for(), которые будут обходить этот массив. Через один цикл у вас все-равно не выйдет, так как элементы последовательно расположены.

  Ответить  
 
 автор: kvins   (31.12.2011 в 13:32)   письмо автору
 
   для: cheops   (30.12.2011 в 21:00)
 

чет подумал я, а не лучше 2 выборки сделать ? вроде можно старт фром 2 прописать

  Ответить  
 
 автор: cheops   (31.12.2011 в 13:50)   письмо автору
 
   для: kvins   (31.12.2011 в 13:32)
 

Две выборки - два запроса, двойная нагрузка. Если хотите, использовать именно while() + mysql_fetch_array(), то после первого цикла выполните функцию mysql_data_seek(), передав в качестве второго параметра 0. Такой вызов переместит указатель результирующей таблицы в начала, и её снова можно будет прочитать. Таким образом, запрос будет один, а циклов while($result = mysql_fetch_array($hdl)) - два.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования