INNER JOIN и FIND_IN_SET поможите :)

ilal

Новичок
INNER JOIN и FIND_IN_SET поможите :)

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(works,$ww)>0 ";

запрос...

$line=mysql_fetch_array($result);
выводит
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

в синтаксисе где то ошибка?

-~{}~ 14.03.08 14:39:

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(hot_vac.works,$ww)>0 ";

тоже пробовал... результата нет :(
пока FIND_IN_SET в запрос не ставлю, все работает....

-~{}~ 14.03.08 15:01:

так... я понимаю, что меня материть будут, но всеж...

верхняя заработала, две запятые просто забыл...

а вот это...

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(works,'$ww')>0 AND FIND_IN_SET(town,'$tt')>0 ORDER BY `id` LIMIT 6 ";

работает только без ORDER BY `id`
???? как так? в чем задница? всю жизнь работала...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
работает только без ORDER BY `id`
Потому-что у тебя id в 2-х таблицах, а конкретно из какой таблицы брать `id` ты не указываешь.

Выведи mysql_query($sql) or die(mysql_error());
И все станет ясно.

-~{}~ 14.03.08 14:07:

верхняя заработала, две запятые просто забыл...
Я, наверное, чего-то не понимаю.
Поскольку я не вижу, в приведенных запросах

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(works,$ww)>0 ";
$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(hot_vac.works,$ww)>0 ";
места в которые следует поставить запятые. :)

Я, думаю, что если указывать _реальный_ запрос - все будет решаться оч. быстро. :)
 

ilal

Новичок
запросы реальные...
если чесно - затрахался с запятыми этими...

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(hot_vac.works,$ww)>0 ";

и

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(`hot_vac.works`,$ww)>0 ";

найдите два отличия... пипец просто...

-~{}~ 14.03.08 15:16:

$query = "SELECT SQL_CALC_FOUND_ROWS * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(works,'$ww')>0 AND FIND_IN_SET(town,'$tt')>0 ORDER BY hot_vac.id DESC LIMIT 6 ";

работает... хотя опять же.... пишу ORDER BY `hot_vac.id` а не ORDER BY hot_vac.id и усе... не работает... где ставить, где не ставить... жуть...

кстати, теперь у меня странный итог= выводятся две записи хотя по одной записи в таблицах...

-~{}~ 14.03.08 15:18:

черт.. нет, в одной таблице две...

-~{}~ 14.03.08 15:27:

сейчас под денвером пишу, мне интересно, при переносе на хостинг придется все эти запятые опять перетыкивать????
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
ilal
Ну ты в упор не хочешь делать так, как тебе говорят.
Выведи mysql_query($sql) or die(mysql_error());
`hot_vac.id` так неправильно. Так ты запрашиваешь колонку с именем hot_vac.id
а тебе нужна колонка id из таблицы hot_vac
в даннос случае нужно указать
`hot_vac`.`id`

-~{}~ 14.03.08 14:50:

$query = "SELECT * FROM `hot_vac` INNER JOIN `hot_vac_town` USING (`id`) WHERE FIND_IN_SET(`hot_vac.works`,$ww)>0 ";
Это у тебя работает? :confused:
Странно
Должно быть
Unknown column

-~{}~ 14.03.08 14:52:

при переносе на хостинг придется все эти запятые опять перетыкивать????
Нет.
Если они нормально "втыкнуты".
 

ilal

Новичок
or die(mysql_error()); :))))))))) делал, спасибо ... :)

кстати, да... работает... но переписал на `hot_vac`.`id` :))) тоже работает :))) блин... что то настроено, видимо, коряво....

спасибо за верный вариант :)))
 
Сверху