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

Запрос в одну строку

Тема в разделе "Вопросы от блондинок", создана пользователем cherniy_komunar, 5 апр 2008.

Статус темы:
Закрыта.
  1. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Hello All, помогите пжл с запросом уже третий день борюсь никак победить не могу...

    делаю запрос

    [sql]SELECT TB.IDTOVARA, Sum(TB.KOLTOVARA) AS KOLTOVARA
    FROM TB
    GROUP BY TB.IDTOVARA LIMIT 3;[/sql]



    Данные ессно получаю в таком виде:



    А мене нада получить в следующем виде:


    Т.Е. нада вывести данные в одну строку.... Help пожалуйста как это сделать????????? Заранее очень благодарен......
     
  2. cf

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

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    это шутка?
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это неверный подход.
     
  4. Xerk

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

    С нами с:
    5 окт 2007
    Сообщения:
    177
    Симпатии:
    0
    Адрес:
    Владивосток
    интересно, а в самом деле, как это сделать запросом? уверен что можно написать какой-нить извратный запрос, который бы так делал... Правда нагрузку на БД наверняка давал бы жуткую %)

    cherniy_komunar, Это делается в скрипте, который обрабатывает результат запроса.
     
  5. Anonymous

    Anonymous Guest

    В Бляндинок, быстро!
     
  6. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Нет это была не шутка я просто просил помочь...

    Умник?? Мог бы вообще ниче не писать если не знаешь, я просил помочь я же не профи в этом деле, вот и спросил, а Ты сразу в бляндинок....

    Ну да ладно есть еще форум на котором мне помогли без лишних слов...а тут сразу в бляндинок....

    [sql]SELECT DISTINCT a.IDTOV, (select sum(t.KOL) from rashod_id t where t.IDTOV=a.IDTOV) AS sum_a, b.IDTOV, (select sum(t.KOL) from rashod_id t where t.IDTOV=b.IDTOV) AS sum_b, c.IDTOV, (select sum(t.KOL) from rashod_id t where t.IDTOV=c.IDTOV) AS sum_c
    FROM rashod_id AS a, rashod_id AS b, rashod_id AS c
    WHERE a.IDTOV<b.IDTOV and a.IDTOV<c.IDTOV and b.IDTOV<c.IDTOV
    ORDER BY a.IDTOV, b.IDTOV, c.IDTOV LIMIT 1[/sql]
     
  7. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    cherniy_komunar не прав, подход неверен. Тем более ты сам не въехал что этот запрос делает.
    Не буду в нем полностью разбираться, но сходу тому, кто его писал:
    пересечение двух вложенных запросов как таблиц, да еще с третьей таблицей надо вкладывать одно в другое, иначе будет очень сильно тормозить.
     
  8. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Так меня и предупредили что медленно бует....а как тогда по другому может Вы можете помочь а? или тут нада всем денег платить за помощь, непойму зачем тогда вообще форум существует...........
     
  9. Anonymous

    Anonymous Guest

    Нет, тебе повезло, у нас как раз месячник "Помоги имбецилу" проходит.
     
  10. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Выбирай выражения, Я Тебя не оскорблял....
     
  11. Anonymous

    Anonymous Guest

    cherniy_komunar, а это оскорблять должно не тебя, а того, кто этот месячник затеял. Ладно, это все лирика, если по делу:

    1. Почему ты считаешь, что это нужно получать в такой форме? Зачем?

    Это на самом деле, очень важный вопрос. Практически ключевой. Потому что ты скорее всего должен хотеть не этого.
     
  12. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Ладно проехали...

    Мне нужно выбрать товар тот который больше всего продался (типа лидеры продаж)....Но так как я начинающий в php я немного не догоняю как мне вывести таблицу не по вертикали а по горизонтали, вот я и задался создать такой запрос.....
     
  13. Anonymous

    Anonymous Guest

    Вот. Ключевое слово - ВЫВЕСТИ. Не ПОЛУЧИТЬ, а ВЫВЕСТИ.

    Вот отсюда уже надо плясать.
    Следующий контрольный вопрос:
    2. Как в html вывести табличку с одной строкой, но множеством клеток?
     
  14. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Вот вот оно самое, я вывел одной строкой так:

    PHP:
    1. ?>
    2. <table width="100%" border="0" cellpadding="0" cellspacing="0" >
    3. <?php
    4. $r=mysql_query("SELECT IDTOV, Sum(KOL) AS KOL GROUP BY IDTOV  LIMIT 3");
    5. for($i=0;$i<3;$i++)
    6. {
    7. echo "<td><img name=y src=Images/{$k['3']}.gif width=50 height=65 alt= /></td>";
    8. echo "<td>{$k['2']}</td>";  
    9. echo "<td>{$k['1']}</td>";
    10. }
    11. ?>
    12. </table>
    но мне нада не одна строка в таблице а допусти 3 и несколько объедененных строк в одной колонке вот тут я и встал.........
     
  15. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Просто может можно как нить сделать вот так:

    PHP:
    1.  
    2. <table width="390" border="1" cellpadding="0" cellspacing="0">
    3.   <tr>
    4.     <td><?php echo $row_Recordset1['IDTOV0']; ?></td>
    5.     <td><?php echo $row_Recordset1['NAME0']; ?></td>
    6.  
    7.     <td><?php echo $row_Recordset1['IDTOV0']; ?></td>
    8.     <td><?php echo $row_Recordset1['NAME0']; ?></td>
    9.  
    10.     <td><?php echo $row_Recordset1['IDTOV0']; ?></td>
    11.     <td><?php echo $row_Recordset1['NAME0']; ?></td>
    12.   </tr>
    13.  
    А между ними поставить что то типа как в VB rs.MoveNext...что б переходил на следующую строку....
     
  16. stas_t

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

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    как-нибудь так...
    PHP:
    1. <?php
    2. ...
    3. echo '<tr>';
    4. for (mysql_unbuffered_query ('select ...'), $i=1
    5.     ; $row = mysql_fetch_assoc ()
    6.     ; ++$i
    7.     )
    8. {
    9.     echo "<td><img src=\"/path to img/img...{$row['IDTOV']}...gif\"/></td>"
    10.         . "<td>{$row['IDTOV']}</td>"
    11.         . "<td>{$row['KOL']}</td>"
    12.         ;
    13.     if ($i == 3)
    14.     {
    15.         echo '</tr><tr>';
    16.         $i = 0;
    17.     }
    18. }
    19. echo '</tr>';
    20. ...
    21. ?>
    это при условии, что вы действительно хотите выводить значения в виде
    A B C
    D E F
    G H ...
    и не забудьте определить толщину для всех 9 колонок (COL в THEAD)
     
  17. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Спс за ответ, но это в принципе тоже что и я сделал, мне нужно немножко не так попробую нарисовать :)..
    [css]__________________________
    | |Какойто текст |
    | |____________ |
    | ФОТО |Какойто текст | Ну и так к примеру 4-ре раза по горизонтали..
    | |__________ __|
    | |Кнопка | Кнопка |
    |__________|_____|_______|[/css]
    А у меня получается что данные выводятся просто одной строкой :(


    [css]Фото | Какойто текст | Какойто текст | Кнопка | Кнопка | И так 4-ре раза...[/css]


    Млин вот засада то а.....
     
  18. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Для решения этой задачи нужно обязательно знать:
    a) PHP
    б) HTML
    в) SQL

    С SQL разобрались, все работает прекрасно, там ничего не трогаем...
    вот теперь вопрос: PHP или HTML, в чем трудности?
     
  19. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    PHP, просто хочу увидеть как это сделать что бы разобраться.....
     
  20. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    PHP:
    1.  
    2. <?php
    3.     $text = array('text_one', 'text_two', ...);
    4. ?>
    5.  
    6. <table border=1>
    7. <tr>
    8.     <td rowspan=4>ФОТО</td>
    9.     <td><?=$text[0]?></td>
    10. </tr>
    11. <?php
    12. for ($i = 1; $i < 4; $i++)
    13. {
    14. ?>
    15.     <tr><td><?=$text[ $i ]?></td></tr>
    16. <?
    17. }
    18. ?>
    19. </table>
     
  21. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Но учтите, что это самый ошибочный путь.
    Чтобы это понять, советую изучать литературу. Хорошую литературу.
     
  22. cherniy_komunar

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

    С нами с:
    5 апр 2008
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Одесса
    Спс, но наверное я не так задаю вопрос.......

    "и так 4-ре раза по горизонтали" - т.е. цикл..
     
  23. creage

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

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    простите мне мою грубость, но я вот в а%уе от людей, которые не имея понятия о элементарных азах программирования, пытаются реализовать задачи хотя бы на PHP.

    видно, что человек в упор не понимает принципа реализации.

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

    прости меня, Господи...
     
  24. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Тссс!! Нельзя так говорить. У нас тут месячник "помоги имбецилу" - мы тут все белые и пушистые, отвечаем на самые дибильные вопросы, разжёвываем кашку и в рот раскладываем.
    А ты тут с такой откровенностью вылез. Это вот месяц назад его бы уже давно послали, а тему закрыли. А теперь нельзя так.
     
  25. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    cherniy_komunar
    формулируйте вопрос
     
Статус темы:
Закрыта.