За последние 24 часа нас посетили 22755 программистов и 1561 робот. Сейчас ищут 935 программистов ...

Cократить код

Тема в разделе "Прочие вопросы по PHP", создана пользователем Fusix, 27 июл 2010.

  1. Fusix

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

    С нами с:
    22 фев 2010
    Сообщения:
    67
    Симпатии:
    0
    Как можно сократить данный код?
    Код (Text):
    1.  
    2. $battle_id = 1;
    3.  
    4. $result = mysql_query("SELECT pl1 FROM battles WHERE id = '$battle_id'");
    5. $user1 = mysql_fetch_array($result);
    6. $user1 = $user1['pl1'];
    7.  
    8. $result2 = mysql_query("SELECT battle_info FROM users WHERE id = '$user1'");
    9. $user1 = mysql_fetch_array($result2);
    10.  
    11. $result = mysql_query("SELECT pl2 FROM battles WHERE id = '$battle_id'");
    12. $user2 = mysql_fetch_array($result);
    13. $user2 = $user1['pl2'];
    14.  
    15. $result2 = mysql_query("SELECT battle_info FROM users WHERE id = '$user2'");
    16. $user2 = mysql_fetch_array($result2);
     
  2. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    с целью? скорости, объема кода или чего?
    это что тест в школе?
     
  3. Fusix

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

    С нами с:
    22 фев 2010
    Сообщения:
    67
    Симпатии:
    0
    Нет это не тест, с целью скорости и наименьшей нагрузки.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    что. игру пишем? тут скорость надо получать в проектировании БД, а в играх это НЕ нормализованное проектирование.
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    В данном случае все данные должны быть в одной таблице. Если у вас 1 на 1, то лучше всего сделать колонки типа user_created_battle и user_accepted_battle, таким образом всё выбирается в 1 запрос.
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    а вложенный?

    SELECT battle_info FROM users WHERE id = (SELECT pl1 FROM battles WHERE id = '".$battle_id."'")
     
  7. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Может как то так? Код на работаспособность не пробовал.

    $user1 = array_pop(mysql_fetch_array(mysql_query("SELECT pl1 FROM battles WHERE id = '$battle_id'")));