Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из 2х таблиц
 
 автор: Dizels   (31.07.2008 в 10:37)   письмо автору
 
 

есть таблица 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

Вообщем нужна Ваша помощь.

  Ответить  
 
 автор: Roma   (31.07.2008 в 10:59)   письмо автору
 
   для: 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"; 
            } 
        }

  Ответить  
 
 автор: Trianon   (31.07.2008 в 11:05)   письмо автору
 
   для: 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 ).")";

  Ответить  
 
 автор: Roma   (31.07.2008 в 11:07)   письмо автору
 
   для: Trianon   (31.07.2008 в 11:05)
 

ах,да, прошу прощения, я просто скопировал с сообщения автора.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования