|
|
|
| есть таблица ent_cat ее структура:
CREATE TABLE `ent_cat` (
`id_enterprise` int(11) NOT NULL,
`id_category` int(11) NOT NULL
) ENGINE=MyISAM;
|
и таблица agro_category ее структура:
CREATE TABLE `agro_category` (
`id_category` int(11) NOT NULL auto_increment,
`title` tinytext NOT NULL,
`keywords` tinytext NOT NULL,
`description` text NOT NULL,
`name` tinytext NOT NULL,
`id_parent` int(11) NOT NULL,
PRIMARY KEY (`id_category`)
) ENGINE=MyISAM;
|
Необходимо вывести название категорий конктретного предприятия. Для этого сначала осуществить запрос к таблице ent_cat и выбрать порядковые номер категорий относящихся к предприятию, а потом осуществить запрос к таблице agro_category чтобы по имеющимся порядковым номерам категорий выяснить их названия.
Практически я делаю это вот так:
<?php
$sql = "select * from ent_cat where id_enterprise=". intval($_GET['id_enterprise']);
$res=mysql_query($sql);
if(!$res)
{
print "Ашыпка";
}
for($category = array(); $row = mysql_fetch_assoc($res); )
$category[] = $row['id_category'];
до сюда вроде бы все правильно должно быть, а вот как правильно дальше запрос составить?
так как у меня - как я понимаю - не правильно.
$qe = "select * from agro_category where id_category=$category";
$rez=mysql_query($qe);
if(!$res)
{
print "Ашыпка2";
}
else
{
while($specia = mysql_fetch_array($rez))
{
$name = $specia['name'];
print"$name";
}
}
?>
|
Ошибку выдает вот такую:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\domen.ru\www\agro_enterprise\index.php on line 153
|
Вообщем нужна Ваша помощь. | |
|
|
|
|
|
|
|
для: Dizels
(31.07.2008 в 10:37)
| | у вас $category - массив
если хотите делать таким путем, тогда надо
qe = "select * from agro_category where id_category=in(".implode(",",$category ).")";
|
Но лучше сделать примерно так
$querystr="select agro_category.name
from agro_category
join ent_cat on ent_cat.id_category=agro_category.id_category
where ent_cat.id_enterprise=". intval($_GET['id_enterprise']);
$res=mysql_query($querystr);
if(!$res)
{
print "Ашыпка2";
}
else
{
while($specia = mysql_fetch_array($res))
{
$name = $specia['name'];
print"$name";
}
}
|
| |
|
|
|
|
|
|
|
для: Roma
(31.07.2008 в 10:59)
| | >qe = "select * from agro_category where id_category=in(".implode(",",$category ).")";
знак "равно" перед in - лишний.
qe = "select * from agro_category where id_category in(".implode(",",$category ).")";
|
| |
|
|
|
|
|
|
|
для: Trianon
(31.07.2008 в 11:05)
| | ах,да, прошу прощения, я просто скопировал с сообщения автора. | |
|
|
|