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

Форум MySQL

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

 

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

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

тема: запрос по двум таблицам
 
 автор: sasch   (13.09.2007 в 23:31)   письмо автору
 
 

Всем привет,
делаю выборку информации из таблички и еще хотелось бы добавить фото из другой.

<?php
CREATE TABLE 
`hrcuts` (
  `
hc_idint(11NOT NULL AUTO_INCREMENT,
  `
hc_descrtext NOT NULL,
  `
hc_misctinytext NOT NULL,
  `
hc_hideint(1NOT NULL DEFAULT '0',
  `
galidint(11NOT NULL DEFAULT '0',
  
PRIMARY KEY (`hc_id`)
ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=;

CREATE TABLE `hcpics` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
hcidint(11NOT NULL,
  `
hcpictinytext NOT NULL,
  `
gidint(11NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=;
 
 
// делаю так

   
$start $page 8;
   
$sql " SELECT hrcuts.*, image.hcpic, image.hcid
            FROM hrcuts
            LEFT JOIN
            (SELECT hcpic,hcid FROM hcpics WHERE gid = 
$galid and hcid IS NOT NULL LIMIT 1) AS image// тут нужно выбрать по 1 картинке для каждой записи. А получается всего 1 для вех. 
            ON hrcuts.hc_id=image.hcid
            WHERE galid = 
$galid
            ORDER BY hc_id
            LIMIT 
$start,8";// всего картинок на странице

 // Вывод 
$res mysql_query($sql) or die("error in $sqlmysql_error());
....
    while(
$par mysql_fetch_array($res))
    {
        if(!empty(
$par['hcpic']) OR
          
$par['hcpic'] != "-" OR
          
file_exists($par['hcpic'])){
          
$img "<a href=''><img src='".$par['hcpic']."' alt='"
.$par['hc_descr']."'></a>";
         } ...
?>

Плиз SOS.
Спасибо.

PS.
проверила этот запрос через MySql, получилось
hc_id hc_descr hc_hide galid hcpic hcid
34 test1 0 1 NULL NULL
35 test 2 0 1 NULL NULL
36 test 3 0 1 ../../../img/gal/1/36/3.JPG 36

NULL - значения не найдены?

   
 
 автор: cheops   (14.09.2007 в 10:37)   письмо автору
 
   для: sasch   (13.09.2007 в 23:31)
 

А в чём вопрос?

   
 
 автор: sasch   (14.09.2007 в 14:14)   письмо автору
 
   для: cheops   (14.09.2007 в 10:37)
 

Запрос выводит только 1 картинку, а нужно выбрать по 1для каждой информационной записи. Я тут переделала запрос но все равно что-то не так.

<?php
   $sql 
" SELECT hrcuts.*, image.hcpic, image.hcid
            FROM hrcuts
            LEFT JOIN
            (SELECT * FROM hcpics WHERE gid = 
$galid and hcid IS NOT NULL LIMIT 1 ) AS image
            ON hrcuts.galid=image.gid
            WHERE galid = 
$galid
            ORDER BY hc_id
            LIMIT 
$start,8";
?>

Тут уже лучше но все равно не то. Выводится тоже только 1 картинка и распространяется на все записи. (все картинки одинаковы)

   
 
 автор: oradev   (14.09.2007 в 21:57)   письмо автору
 
   для: sasch   (14.09.2007 в 14:14)
 

sasch, все это безобразно! Конечно будет одна картинка будет распространяться на ве записи если вы возвращайте одну запись в подзапросе LIMIT1 - это каша полная.
А зачем вот это условие hcid IS NOT NULL - в таблицу уже это ограничение включено, а вы еще раз его в запросе используете.

   
Rambler's Top100
вверх

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