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

Раскрывающейся список.

Тема в разделе "Сделайте за меня", создана пользователем Mister321, 22 июл 2016.

  1. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Здравствуйте. В этом раскрывающемся списке все майки из БД. Их там где то 200. А нужно, что бы в этом списке было 50. ( А потом сделаю второй список в котором будут остальные 150.) Помогите пожалуйста. Я новичек, если не понятно объяснил, то постараюсь растолковать подробнее.



    PHP:
    1. Майки:<br><br>
    2.         <select name="id_categories">
    3.         <option selected="selected" value="">Выберите майку</option>
    4.             <? if($categories) :?>
    5.                 <? foreach($categories as $key => $item) :?>
    6.                     <label="<?=$item[0]?>">
    7.                         <? foreach($item['next'] as $k => $v ):?>
    8.                             <option value="<?=$k;?>">-<?=$v;?></option>
    9.                         <? endforeach;?>
    10.                     </label>
    11.                 <? endforeach;?>
    12.             <? endif;?>  
    13.         </select>
     
  2. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Здравствуйте. В этом раскрывающемся списке все майки из БД. Их там где то 200. А нужно, что бы в этом списке было 50. ( А потом сделаю второй список в котором будут остальные 150.) Помогите пожалуйста. Я новичек, если не понятно объяснил, то постараюсь растолковать подробнее.



    PHP:
    1. Майки:<br><br>
    2.         <select name="id_categories">
    3.         <option selected="selected" value="">Выберите майку</option>
    4.             <? if($categories) :?>
    5.                 <? foreach($categories as $key => $item) :?>
    6.                     <label="<?=$item[0]?>">
    7.                         <? foreach($item['next'] as $k => $v ):?>
    8.                             <option value="<?=$k;?>">-<?=$v;?></option>
    9.                         <? endforeach;?>
    10.                     </label>
    11.                 <? endforeach;?>
    12.             <? endif;?>  
    13.         </select>
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    гугли mysql limit
     
  4. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Кажется это не то. Мой код записывает в базу. А не извлекает.
     
  5. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Здравствуйте. В этом раскрывающемся списке все майки из БД. Их там где то 200. А нужно, что бы в этом списке было 50. ( А потом сделаю второй список в котором будут остальные 150.) Помогите пожалуйста. Я новичек, если не понятно объяснил, то постараюсь растолковать подробнее.



    PHP:
    1. Майки:<br><br>
    2.         <select name="id_categories">
    3.         <option selected="selected" value="">Выберите майку</option>
    4.             <? if($categories) :?>
    5.                 <? foreach($categories as $key => $item) :?>
    6.                     <label="<?=$item[0]?>">
    7.                         <? foreach($item['next'] as $k => $v ):?>
    8.                             <option value="<?=$k;?>">-<?=$v;?></option>
    9.                         <? endforeach;?>
    10.                     </label>
    11.                 <? endforeach;?>
    12.             <? endif;?>  
    13.         </select>
    t
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    А как выбрать 50 и выводить их?
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.589
    Симпатии:
    1.763
    $categories ты же из базы выбираешь? Тогда limit - то, что доктор прописал. А-ля
    Код (Text):
    1. select * from categories limit 50
     
  9. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Не могу разобраться куда
    Код (Text):
    1. select * from categories limit 50
    это вставить
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Mister321 как из базы был получен список? Который в $categories.
     
  11. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    PHP:
    1. function get_categories() {
    2.         $sql = "SELECT id,name,parent_id FROM ".PREF."categories";
    3.         $result = mysql_query($sql);
    4.        
    5.         if(!$result) {
    6.             exit(mysql_errno());
    7.         }
    8.        
    9.         if(mysql_num_rows($result) == 0) {
    10.             return FALSE;
    11.         }
    12.        
    13.         $categories = array();
    14.        
    15.         for($i = 0; mysql_num_rows($result) > $i;$i++) {
    16.             $row = mysql_fetch_array($result,MYSQL_ASSOC);
    17.            
    18.             if(!$row['parent_id']) {
    19.                 $categories[$row['id']][] = $row['name'];
    20.             }
    21.             else {
    22.                 $categories[$row['parent_id']]['next'][$row['id']] = $row['name'];
    23.             }
    24.         }
    25.        
    26.         return $categories;
    27.     }
    --- Добавлено ---
    $categories = get_categories();
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот в SQL запроси можно прописать ограничение на вывод 50 первых записей, посмотри документацию по LIMIT, потом можно 50 по 100 показать, и так кусками сколько нужно.
     
  13. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Вот так сделал, вроде бы все работает
    Код (Text):
    1. Майка:<br><br>
    2.         <select name="id_categories">
    3.         <option selected="selected" value="">Выберите Майку</option>
    4.      
    5. <?
    6. $res = mysql_query("SELECT id,name FROM ".PREF."categories where id<50");
    7. while($row = mysql_fetch_assoc($res)){
    8.     ?>
    9.     <option  value="<?=$row['id']?>"><?=$row['name']?></option>
    10.          
    11.                               <?
    12. }
    13.  
    14. ?>  
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ну, чтобы было точнее, почитай про LIMIT.
     
  15. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Так лучше да? Вы про это?
    Код (Text):
    1. <?
    2. $res = mysql_query("SELECT id,name FROM ".PREF."categories limit 50");
    3. while($row = mysql_fetch_assoc($res)){
    4.     ?>
    5.     <option  value="<?=$row['id']?>"><?=$row['name']?></option>
    6.            
    7.                                <?
    8. }
    9.  
    10. ?>    
     
    denis01 нравится это.
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Теперь я доволен!:D
     
    mr.akv нравится это.
  17. Mister321

    Mister321 Новичок

    С нами с:
    6 янв 2016
    Сообщения:
    11
    Симпатии:
    1
    Спасибо вам.:)