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

Сортировка данных перед выводом на экран.

Тема в разделе "PHP и базы данных", создана пользователем masix, 2 май 2007.

  1. masix

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

    С нами с:
    18 мар 2007
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте.
    Столкнулся с токой проблемой нужно вывести данные из базы с определенной сортировкой.
    примерно база выглядит так
    поле 1 |поле 2 |поле 3 |поле 4 |поле 5 |.....

    CH1 |CH2 |CH3 |DF |DH |
    CH2 |DF |CH1 |DH |Comm |

    так как в базе выводить не хочется, так как каждый раз ячейка может принять то или иное значение.
    Как сделать так чтоб на экран выводились данные именно в том порядке как я хочу.
    грубо говоря СH1| СH2| СH3| DF| DH|
     
  2. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    order by field_name ASK OR DESC
     
  3. masix

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

    С нами с:
    18 мар 2007
    Сообщения:
    11
    Симпатии:
    0
    Я как понимаю это сортировка по слолбцам, мне это не подходит, надо чтоб данные всегда выводились в одном порядке и если какого то значения не будет, то я буду писать "_"
     
  4. Davil

    Davil Guest

    5 раз перечитывал вопрос... Что-то как-то не очень понятно чего нужно добиться...
    Требуется сортировка при получении из базы, или сортировка при обработке полученного в PHP?
     
  5. Davil

    Davil Guest

    По названию темы приблизительно понял.
    PHP:
    1. <?php
    2. $res = mysql_query($sql, $connection);
    3. while($arr = mysql_fetch_assoc($res)){
    4.        echo $arr['name1']."x".$arr['name2'];   //И т.д.
    5. }
    6. ?>
     
  6. Gef

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

    С нами с:
    1 мар 2007
    Сообщения:
    1
    Симпатии:
    0
    Подскажите как эти данные, которые вывелись в name1 и name 2 с корректировать при помощи CSS?
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Gef, masix
    чего курили-то?
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    мануал? :oops:
     
  9. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    это мы ман курим... а они какую-то забойную траву...
    вчитайся
    как .. данные, которые вывелись .. с корректировать при помощи CSS?
    а masix насколько я понял вообще хочет отсортированно выводить значения Х разных строчек таблицы в которой Y столбцов (иными словами алфавитно отсортировать X*Y ячеек)... так наверное нужно сначала все в некоторый PHP массив запихнуть, отсортить а потом уже выводить... я не думаю что мускул может сделать такое извращение... во всяком случае я себе не предстаяляю семантику подобного запроса...
     
  10. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    Здравствуйте. Допустим есть табличка в базе n*m. В ней лежат значения. Делаем selest * ... Как вывести эту табличку на экран чтобы красиво нарисовать по столбцам и колонкам, и имена столбцов ввести какие нужно. ? Спасибо. Сделали сапрос. Записали ответ. А дальше?
     
  11. Davil

    Davil Guest

    Обычный tag <table>. Просто напросто необходимо распределить полученные данные внутри таблицы.
     
  12. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    Я только учусь. Код представите?
     
  13. Davil

    Davil Guest

  14. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    Это понятно. А если их 30?
     
  15. Davil

    Davil Guest

    Можно сочинить цикл для формирования строки вывода. К примеру -
    PHP:
    1.  
    2. <?php
    3. $msg = "<table border=\"1\">";
    4. for($i=0;$i<count($a);$i++){
    5. foreach($a[$i] as $b){
    6. $msg .= "<td>$b</td>";
    7. }
    8. $msg .= "</tr>\n<tr>";
    9. foreach($a[$i] as $b=>$c){
    10. $msg .= "<td>$c</td>";
    11. }
    12. $msg .= "</tr>";
    13. }
    14. $msg .= "</table>";
    15. ?>
    16.  
     
  16. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а ещё можно посмотреть, что в мануале примеры для mysql_fetch_* даны все с циклами
     
  17. Davil

    Davil Guest

    Это смотря сколько строчек достать нужно.
     
  18. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    естественно, про одну строку и уже и так выше написал. ;)
     
  19. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    PHP:
    1.  
    2. <?php /* Created on: 04.05.2007 */ ?>
    3. <html>
    4. <body>
    5. <?php
    6.         $link = mysql_connect("localhost", "root", "ferrari") or die("<br>Could not connect to mysql server.<br>");
    7.     echo "Connected successfully to mysql server.<br>";
    8.     mysql_select_db("department_mtmpsy") or die("Could not select database<br>");
    9.     echo "Connected successfully to database.<br>";
    10.      
    11.     $query = "SELECT * FROM department_staff_personal_public";
    12.     $result = mysql_query($query) or die("Query failed : " . mysql_error());     
    13.    
    14.     /* вот с этого момента как грамотно вывести содержимое ответа?
    15.     Не друг за другом а в табличку? чтобы названия колонок определять самому? */
    16.         while ($row = mysql_fetch_array($result, MYSQL_NUM))
    17.         {
    18.         printf ("my_name1 %s myName2: %s my_name3: %s my_name4: %s", $row[0], $row[1], $row[2], $row[3]);  
    19.     }        
    20.         mysql_free_result($result);
    21.         mysql_close($link);    
    22. ?>
    23.      
    24. </body>
    25. </html>
    26.  
     
  20. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    Где в строчке 17 надо tr td понатыкать? Или нужно воспользоваться другой конструкцией?
     
  21. Davil

    Davil Guest

    хм. А предыдущие посты я впустую написал?
     
  22. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а то ;)

    qwerty737
    PHP:
    1. <?php
    2. $str = '<table><tr><td>поле 1</td><td>поле 2</td><td>поле 3</td><td>поле 4</td></tr>';
    3.          while ($row = mysql_fetch_array($result, MYSQL_NUM))
    4.             $str .= '<tr><td>'.$row[0].'</td><td>'.$row[0].'</td><td>'.$row[0].'</td><td>'.$row[0].'</td></tr>';
    5.  
    6.          mysql_free_result($result);
    7.          mysql_close($link);
    8. $str .= '</table>';
    9. echo $str;
    10. ?>
     
  23. qwerty737

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

    С нами с:
    2 апр 2007
    Сообщения:
    63
    Симпатии:
    0
    Davil
    Не зря, просто я не понял что такое $a. Спасибо.
    Luge
    Спасибо. Возник вопрос. В 4,8 если убрать точку, то не работает. Можно поподробнее от этом в мануал ссылку сбросить?
    И почему некоторые пишут через >"< а некоторые через >'<? Должна же быть разница.
     
  24. Al()en

    Al()en Активный пользователь

    С нами с:
    4 мар 2006
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Сибирская Столица.
    Точка означает, что старое значение не затирается, как было бы при
    PHP:
    1. <?php $str='asd';
    2. $str='qwe';
    3. echo $str; // 'qwe'; ?>
    а добавляется после предыдущего значения.
    PHP:
    1. <?php $str='asd';
    2. $str.='qwe';
    3. echo $str; // 'asdqwe'; ?>
    Разница " и ' в том, что в апострофах РНР не интерпритирует переменные(выводит как есть в апострофах), а в кавычках интерпритирует(выводит с заменой переменных).
    смотри что будет при таком коде:
    PHP:
    1. <?php
    2. $test='peremennaya';
    3. echo "1: $test <br>"; // 1: peremennaya <br>
    4. echo '2: $test <br>';  // 2: $test <br>
    5. ?>
    В этом их отличие :)
     
  25. Davil

    Davil Guest

    Забыл еще про обрытные апострофы написать `` =))