За последние 24 часа нас посетили 16383 программиста и 1678 роботов. Сейчас ищут 938 программистов ...

Два запроса в одном запросе

Тема в разделе "PHP для новичков", создана пользователем sumsum, 8 июл 2014.

  1. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Есть две таблицы
    Код (Text):
    1. CREATE TABLE IF NOT EXISTS `tov` (
    2.   `tov_id` int(10) NOT NULL AUTO_INCREMENT,
    3.   `tov_cat` int(4) NOT NULL,
    4.   `tov_foto` varchar(16) NOT NULL,
    5.   `tov_nazv` varchar(100) NOT NULL,
    6.   `tov_artic` varchar(100) NOT NULL,
    7.   `tov_cena` varchar(100) NOT NULL,
    8.   `tov_starcena` varchar(100) NOT NULL,
    9.   `tov_opis` text NOT NULL,
    10.   `tov_kolvo` varchar(40) NOT NULL,
    11.   `tov_perv` int(1) DEFAULT '0',
    12.   `tov_com` int(1) NOT NULL DEFAULT '1',
    13.   `tov_owner` int(10) DEFAULT '0',
    14.   `tov_dem_a` int(4) NOT NULL,
    15.   `tov_dem_b` int(4) NOT NULL,
    16.   `tov_dem_c` int(4) NOT NULL,
    17.   `tov_weight` varchar(40) NOT NULL,
    18.   PRIMARY KEY (`tov_id`)
    19. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=642 ;
    Код (Text):
    1. CREATE TABLE IF NOT EXISTS `users` (
    2.   `user_id` int(11) NOT NULL AUTO_INCREMENT,
    3.   `user_icq` int(10) NOT NULL,
    4.   `user_web` varchar(100) NOT NULL,
    5.   `user_email` varchar(100) NOT NULL,
    6.   `user_emailview` int(1) DEFAULT '0',
    7.   `user_login` varchar(50) NOT NULL,
    8.   `user_pass` varchar(32) NOT NULL,
    9.   `user_sol` char(3) NOT NULL,
    10.   `user_tel` varchar(30) NOT NULL,
    11.   `user_fax` varchar(30) NOT NULL,
    12.   `user_gorod` varchar(20) NOT NULL,
    13.   `user_money` int(10) NOT NULL DEFAULT '0',
    14.   PRIMARY KEY (`user_id`)
    15. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 PACK_KEYS=0 AUTO_INCREMENT=17 ;
    Есть запрос к БД который ищет в товарах то что пользователь задал в строке поиска
    Код (Text):
    1. SELECT * FROM `tov` WHERE `tov_nazv` LIKE '%$poisk%' OR `tov_opis` LIKE '%$poisk%'
    А нужно еще сделать так что бы вывело все товары, которые принадлежат пользователю. Привязка идет по полю tov_owner и стыкуется с идентификатором user_id
     
  2. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    SELECT * FROM `tov` WHERE (`tov_nazv` LIKE '%$poisk%' OR `tov_opis` LIKE '%$poisk%') and tov_owner=$user_id
     
  3. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    так не пойдет ведь у меня нет $user_id его я могу получить из базы пользователей ... а как это одним запросом сделать ... Это вроде как через JOIN нужно делать но что то я не понимаю
     
  4. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    select tov.*, users.login
    from tov, user
    where (`tov_nazv` LIKE '%$poisk%' OR `tov_opis` LIKE '%$poisk%')
    and tov.tov_owner=users.user_id