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

помогите вывести данные

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

  1. sokol8692

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

    С нами с:
    24 дек 2010
    Сообщения:
    28
    Симпатии:
    0
    не могу вывести данные так как мне надо
    -- например есть подраздел кухня и в этот подраздел надо вывести все позиции что к нему относится
    ну и т.д. бар --все что касается бара

    как добавить данные в базу знаю....
    а вот как добиться что бы вывести подраздел(кухня) и именно к нему меню кухни...
    т.к. подразделов много и вручную добавлять новый код вставки данных не удобно и не практично
    если кто знает буду благодарен примеру
    спс
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    хотите узнать как в БД хранить и работеть древовидные структуры данных?
    если да, то гуглим на темы - parent_id, materialized path, nested sets ...
     
  3. sokol8692

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

    С нами с:
    24 дек 2010
    Сообщения:
    28
    Симпатии:
    0
    Подскажите как вывести текст в таком порядке напр
    Завтраки
    блюдо1 ----45
    блюда 2----55
    блюда 3----41

    Закуски
    блюдо1 ----45
    блюда 2----55
    блюда 3----41

    я вывожу грубо говоря в ручную каждый раздел(пример ниже)
    как вывести текст и заголовок к нему так что бы если выводятся завтраки и к нему сразу выводились все надписи относящие к завтракам и т.д.
    я не могу это связать, приходиться вручную вписывать заголовок, а если в будующем надо добавить новый приходится копаться в коде
    как автоматизировать это


    код выбора меню в файле класс
    Код (Text):
    1.  
    2.   function get_content_zakyski() {
    3.    $sql = "select * from zakyski ORDER BY id ASC";
    4.    $res = mysql_query($sql) or die(mysql_error()) ;
    5.     while($row = mysql_fetch_assoc($res))  {
    6.  
    7.          echo '<table width="90%">
    8.         <td   valign="top"  width="12px"> </td>
    9.         <td    style="padding-left: 20px; padding-bottom: 5px;">';
    10.      echo '<b>' . $row['title'] . '</b> ';
    11.          echo '<br> <span style="font-size: 14px;">';
    12.      echo '<i>' . $row['body'] . '</i>';
    13.          echo '</span></td> <td   align="left" width="20px" >';
    14.      echo '<b>' . $row['cena'] . '</b>';
    15.          echo '</td> </table>';
    16.     }
    17.  }
    вывод на страницу сайта
    Код (Text):
    1. <table width="90%">
    2.     <td  valign="top"  width="12px"></td>
    3.     <td  style="padding-left: 5px; padding-bottom: 5px;">
    4.              <b> Закуски</b><br></td>
    5.               </table>
    6. <?php
    7. $obj->get_content_zakyski()
    8. ?>
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    какой текст, откуда, в каком он там формате, какие таблицы, как связаны, какие там есть поля, их тип... ???????????????
    незная этого вам тут НИКТО непоможет. телепаты в вечном отпуске
     
  5. sokol8692

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

    С нами с:
    24 дек 2010
    Сообщения:
    28
    Симпатии:
    0
    есть 2 таблицы
    1- razdelu -----поля id, razdel
    2- menu ---- поля id, nazv, opis, cena

    вывести надо из таблицы razdelu из поля razdel заголовок например Завтраки
    и под ним всю таблицу menu , НО только касающиеся только завтраков
    Завтраки
    блюдо1(опис) ----45
    блюда 2(опис) ----55
    блюда 3(опис) ----41
    ит.д.

    вот так как на этом сайте например
    http://troubadur.com.ua/ru/kyxnya.php

    проблема в том что вручную вывести я знаю как (код выше)
    а вот автоматически нет, например если появится новый раздел нужно будет вручную дописывать код что бы вывел новый раздел и текст к нему
    как автоматизировать, даже когда добавится новый раздел и к нему меню выводил сам на страницу сайта
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    для этого нужно , для начала, чтобы эти таблицы были связаны. тоесть как узнать какие пункты меню относятся именно к завтракам? вы лично знаете, а "комп" откуда узнает?

    тоесть надо в таблицу menu добавить поле, например razdel_id INTEGER
    которое будет хранить ИД раздела к которому относится данный пункт меню. тогда можно выбрать меню для любого раздела, автоматически.
    еще нужно учесть сортировку. тоесть в каком порядке выводить блюда из меню, для раздела. может вам нужно чтоб это сортировалось по названию, может по цене, а может по какойто собственной системе очередности. тогда нужно добавить соответствующее поле, типа menu_sort INTEGER.
     
  7. sokol8692

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

    С нами с:
    24 дек 2010
    Сообщения:
    28
    Симпатии:
    0
    т.е другими словами
    в таблицу menu будут добавляться например все завтраки с id 1, закуски с id 2 ит.д.
    а в таблице razdelu, завтраки id будет1, закуски id 2
    из этого сделать запрос на вывод......вроде понятно если я знаю id, но опять же, , а как автоматизировать, ведь разделы могут добавлять или удаляться и соответственно меняться id каждый раз не будешь смотреть какой id нового раздела
    если можно кусок кода как выводиться данные
     
  8. edn70

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

    С нами с:
    17 фев 2013
    Сообщения:
    2
    Симпатии:
    0
    всем пивет нужна помощь, есть таблица
    id name_hotel zvezd
    1 название1 5
    2 название2 4
    3 название3 5
    нужно сделать чтобы считалось
    5 звезд столько то ( тобишь чтоб вывелось 2)
    4 звезды столько то (а здесь 1)
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    SELECT zvezd,count(*) as cnt
    FROM таблица
    GROUP BY zvezd
    ORDER BY zvezd