SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 04.12.2010 18:18:34

french
Участник
Зарегистрирован: 15.11.2010
Сообщений: 19

Re: Мусукл виснет после запроса

решил пойти по другому пути smile сделал вот как

Код:

if($filter_common == on)
{
$f_common = 'AND (I.commonitem = 0)';
}

Код:

if($filter_monster == on)
{
$f_monster = 'AND (I.monsteritem = 0)';
}

Код:

switch($filter_monster):
    case 'on':
    $sql = "SELECT *
            FROM items as I
            JOIN item_names as N
            ON (I.item_type = '$type') AND (I.weapon_type = '$subtype') AND (I.equip_pet = 0) AND (I.crystal_type = '$gr') $f_monster $f_common AND (I.id = N.id)
            ORDER BY N.name, N.additionalname;";    
    break;
  endswitch;

Код:

switch($filter_common):
    case 'on':
    $sql = "SELECT *
            FROM items as I
            JOIN item_names as N
            ON (I.item_type = '$type') AND (I.weapon_type = '$subtype') AND (I.equip_pet = 0) AND (I.crystal_type = '$gr') $f_monster  $f_common AND (I.id = N.id)
            ORDER BY N.name, N.additionalname;";    
    break;
  endswitch;

Неактивен

 

#27 05.12.2010 16:58:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Мусукл виснет после запроса

Не, так не пойдет. В ON надо писать условие связи. В Вашем случае —
I.id = N.id, а в WHERE надо писать ограничения. Начните с этого smile

Неактивен

 

#28 06.12.2010 10:39:17

french
Участник
Зарегистрирован: 15.11.2010
Сообщений: 19

Re: Мусукл виснет после запроса

я пробовал с WHERE но там проблем больше получается smile а так всё работает... а если работает зачем что то менять? big_smile

Неактивен

 

#29 06.12.2010 12:55:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Мусукл виснет после запроса

Угу, если написать плохую программу, а потом натравить на нее компилятор,
то он выдаст большое количество ошибок. Если же потом компилятору подсунуть
неверный ключ — он выдаст всего одну ошибку. Стало быть, проблем меньше
получается wink

Если бы работало — Вы бы не написали на форум, правда? smile

Неактивен

 

#30 06.12.2010 16:44:09

french
Участник
Зарегистрирован: 15.11.2010
Сообщений: 19

Re: Мусукл виснет после запроса

ну... я написал когда у меня встала загвозка на этом smile но потом я её решил вот таким вот способом... sad согласен что это получился говнокод но главное что работает big_smile и это радует душу smile. Ладно убедили сделаю так..

Код:

switch($filter_monster):
    case 'on':
    $sql = "SELECT *
            FROM items as I
            JOIN item_names as N
            ON (I.item_type = '$type') AND (I.weapon_type = '$subtype') AND (I.equip_pet = 0) AND (I.crystal_type = '$gr') AND (I.id = N.id)
            WHERE $f_monster $f_common
            ORDER BY N.name, N.additionalname;";    
    break;
  endswitch;

одобряете? smile

Отредактированно french (06.12.2010 16:44:34)

Неактивен

 

#31 06.12.2010 18:36:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Мусукл виснет после запроса

Мне ничего не говорят слова $f_monster и $f_common. На самом деле,
я хочу, чтобы Вы написали какой-нибудь простой запрос, в котором сами
бы разобрались.

Что-то такого типа:
SELECT name FROM items i JOIN item_names n USING (id)
WHERE item_type='...' AND weapon_type = '...' AND equip_pet = '...' AND crystal_type='...'
ORDER BY name;

Тут сразу будет понятно, что ограничения все — только на таблицу items, а item_names
неприятна тем, что по ней сортировка. И понятно, что на items нужен индекс на поля в
WHERE (один на все поля), а на item_names — по id.

Кстати, а зачем у Вас имена в отдельной табличке?

Неактивен

 

#32 06.12.2010 21:21:21

french
Участник
Зарегистрирован: 15.11.2010
Сообщений: 19

Re: Мусукл виснет после запроса

Для динамического переключение русских и английских имён и описаний, вобще этот вопрос не ко мне т.к. скрипты которые я переделываю были написаны не мной, я лишь просто его довожу до ума и заодно учусь калякать на пхп smile

Неактивен

 

#33 06.12.2010 21:31:45

french
Участник
Зарегистрирован: 15.11.2010
Сообщений: 19

Re: Мусукл виснет после запроса

а $f_monster и $f_common это

Код:

if($filter_common == on)
{
$f_common = 'AND (I.commonitem = 0)';
}

Код:

if($filter_monster == on)
{
$f_monster = 'AND (I.monsteritem = 0)';
}

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson