За последние 24 часа нас посетили 26894 программиста и 1814 роботов. Сейчас ищут 1377 программистов ...

Несколько запросов базе в одном файле

Тема в разделе "PHP для новичков", создана пользователем R2ndom, 30 янв 2015.

  1. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    Такое ощущение, что я делаю что-то не так.
    Код (Text):
    1.  
    2. $count=0;
    3. $count2=80;
    4. $all=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`char_name`) FROM `characters` WHERE `face`>=$count"));
    5. $man=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`char_name`) FROM `characters` WHERE `sex`=$count"));
    6. $woman=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`char_name`) FROM `characters` WHERE `sex`>$count"));
    7. $online=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`online`) FROM `characters` WHERE `online`>$count"));
    8. $clan=mysql_fetch_row(mysql_query("SELECT COUNT(`clan_id`) FROM `clan_data` WHERE `clan_level`>$count"));
    9. $inclan=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`char_name`) FROM `characters` WHERE `clanid`>$count"));
    10. $offclan=mysql_fetch_row(mysql_query("SELECT 2*COUNT(`char_name`) FROM `characters` WHERE `clanid`=$count"));
    11. $noblesse=mysql_fetch_row(mysql_query("SELECT COUNT(`char_name`) FROM `characters` WHERE `noble`>$count"));
    12. $lvl=mysql_fetch_row(mysql_query("SELECT COUNT(`char_obj_id`) FROM `character_subclasses` WHERE `level`>=$count2"));
    Далее идет вывод полученных результатов в echo.
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ты прав, друг. что-то здесь сильно не так.
     
  3. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    как оптимизировать, чтобы не было столько запросов к базе
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    R2ndom, а какую задачу ты хочешь решить?
     
  5. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    Задача: вывод информации из разных таблиц базы на сайт. Запросами получаю информацию и в echo вывожу на сайт $all, $man и т.д.
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Такой запрос нужно кэшировать и например обновлять раз в сутки, тут уже решать тебе.
    Подумай может структура базы позволяет сделай один запрос.
    https://php.net/manual/ru/mysqli.multi-query.php
     
  7. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    то есть кешировать все запросы к базе?
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Есть запросы которые можно обновлять редко, например статистику раз в минуту это как пример.
    Сам подумай, зачем делать запрос каждый раз как пользователь запросил данные? Легче сохранить результат и обновлять его через приемлемое время.
     
  9. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    Как это реализовать?
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    записывай время когда был сделан запрос, если прошло меньше часа, то бери старые данные из файла.
    обычно в framework есть готовые решения для кэширования.
     
  11. R2ndom

    R2ndom Новичок

    С нами с:
    21 янв 2015
    Сообщения:
    41
    Симпатии:
    0
    Спасибо