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

Отсортировать данные из первой таблицы по условию из второй таблицы

Тема в разделе "Сделайте за меня", создана пользователем franko, 14 июн 2017.

Метки:
  1. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    Посмотрите пожалуйста на вложенный файл.

    В базе данных common (title1, title2, title3....)
    В базе данных profil (Столы, Стулья, Диваны)
    Таблица profil связана с табл. common через id_profil

    Нужно отсортировать табл. common по Столам, Стульям, Диванам

    PHP:
    1. echo "<table class='table table-bordered'>";
    2.                 $query = "SELECT * FROM common WHERE id_country=2 AND id_or=1 ORDER BY title ASC";
    3.                 $result = mysqli_query($db_post,$query);
    4.                 while ($myrow = mysqli_fetch_array($result)) {
    5.  
    6.                     echo "<tr><td>" . $myrow['title'] . "</td>";
    7.                         // выбор профиля
    8.                             $profil=$myrow["profil"];
    9.                             $query_profil = "SELECT * from profil
    10.                                WHERE id_or=1 AND id_profil='$profil'";
    11.                             $result_profil = mysqli_query($db_post,$query_profil);
    12.                             $myrow_profil = mysqli_fetch_array($result_profil);
    13.                         // закончен профиля
    14.  
    15.                     echo "<td>". $myrow_profil["name"] . "</td></tr>";    
    16.                 }
    17.             echo '</table>';
     

    Вложения:

    • explanation.pdf
      Размер файла:
      64,4 КБ
      Просмотров:
      7
    #1 franko, 14 июн 2017
    Последнее редактирование: 14 июн 2017
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    запросы к БД в циклах - жуткое зло
    LEFT JOIN вам в помощь
    Код (Text):
    1. SELECT common.*, profil.* FROM common
    2. LEFT JOIN profil ON profil.id_profil=common.profil
    3. WHERE common.id_country=2 AND common.id_or=1 AND profil.id_or=1
    4. GROUP BY profil.id
    5. ORDER BY profil.name ASC
    правда не очень понимаю что вы хотите в результате получить потому и группировку на шару поставил
    --- Добавлено ---
    блин прочитал приложение... это называется ГРУППИРОВКА ... а не СОРТИРОВКА!
    тогда по другому, выбираете все столы стулья итд, и подтягивате к ним название из common, а потом в цикле - выводите все
     
    franko нравится это.
  3. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    благодарю за ответ. вывожу таблицу с двумя колонками. все прекрасно работает.
    но как сделать дополнительную сортировку объединённой таблицы (MySQL) и вывести в шабку таблицы (HTML) profil.name ?
    прикладываю картинку.

    PHP:
    1. echo "<table class='table table-bordered'>";
    2.  
    3. $query = "SELECT common.title, profil.name
    4. FROM common
    5. INNER JOIN profil ON common.profil = profil.id_profil";
    6.    
    7. $result = mysqli_query($dbc,$query);
    8.  
    9. while($row = mysqli_fetch_array($result)){
    10.     echo "<tr><td>" . $row['title']. "</td><td>" . $row['name']. "</td></tr>";
    11. }
    12. echo '</table>';
     

    Вложения:

  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    еще раз - это ГРУППИРОВКА!!!!
     
  5. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    не понятно как сделать: "выбираете все столы стулья итд, и подтягивате к ним название из common, а потом в цикле - выводите все"

    поясните, пожалуйста, кодом.
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Могу перенести тему в раздел "сделайте за меня", там если кто-то захочет, поможет кодом
     
  7. franko

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

    С нами с:
    19 ноя 2010
    Сообщения:
    30
    Симпатии:
    1
    )) Тема уже изначально создана в разделе "Сделайте за меня".
     
    denis01 нравится это.
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @franko тогда жди, может кто-то сможет помочь
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    еще есть раздел фриланса, там сделают за тебя платно, с большей вероятностью и быстрее