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

Вывод 10 максимальных значений из бд с именами

Тема в разделе "PHP для новичков", создана пользователем Roma_SP, 17 ноя 2013.

  1. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Всем привет! Такая проблема: в бд есть таблица mytable с ячейками username, school, score.
    Как вывести 10 username и school, по максимальным score. И как можно их вставить в таблицу:
    <table id="mytable" summary="Emp">
    <thead>
    <tr>
    <th scope="col">Имя</th>
    <th scope="col">Школа</th>
    <th scope="col">Очки</th>
    <th scope="col">Рефераллов</th>
    </tr>
    </thead>
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Код (Text):
    1.  
    2. select * from mytable order by score desc limit 10;
     
  3. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Почему то выводит только одну запись?
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Добавлено спустя 20 секунд:
    Может потому что там 1 запись?
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Может просто не судьба.
    Пока Шрёдингер не открыл свой ящик, все варианты одинаково верны.
     
  6. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Нет там 20 записей...И выводит только число 10...
     
  7. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    В угадайки уже поиграли. Теперь выкладывай код как ты выводишь свои 10 строк.
     
  8. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    session_start();

    include ("bd.php");
    $result = mysql_query("select * from mytable order by score desc limit 10",$db);
    $myrow = mysql_fetch_array($result);

    echo "$myrow[username], $myrow[score]";
    echo "$myrow";

    причем если через mysql_num_rows то только число 10 выводит
     
  9. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну ты выводишь только одну запись... Чтоб вывести 10, нужен цикл:
    Код (Text):
    1.  
    2. session_start();
    3.  
    4. include ("bd.php");
    5. $result = mysql_query("select * from mytable order by score desc limit 10",$db);
    6.  
    7. while ($myrow = mysql_fetch_array($result)) {
    8.      echo "$myrow[username], $myrow[score]";
    9. }
    mysql_num_rows() возвращает количество записей, возвращённых запросом select, так что правильно, что она возвращает число 10
     
  10. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
     
  11. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Так и должно выводиться. Прилепи скрин, что-ли.... Или что-то ещё. Я же в запросе сортировку по score по убыванию заказал. Оно не может по-другому выводиться.
     
  12. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Выводит так:
    Roma 90
    Alex 40
    user1 20
    user2 100
    user3 10

    Код такой же как и мне писали.
     
  13. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Сортируется как строка. Видимо score задан как varchar.
     
  14. Roma_SP

    Roma_SP Новичок

    С нами с:
    11 сен 2013
    Сообщения:
    89
    Симпатии:
    0
    Большое спасибо!!! varchar и int попутал... ща все норм.