2014-10-23 10 views
-1
$query = 'SELECT newsvid.id, ...... videoinformation.imgShot3, videomain.vidMUrl FROM newsvid, videomain, videoinformation WHERE newsvid.id = ' . $video_id . 'videoinformation.id =' . $video_id . ' newsvid.id = ' . $video_id; 

Проблема понятия не имею, как сделать эту битовую работу:SQL-запрос, как его отделить?

WHERE newsvid.id = ' . $video_id . 'videoinformation.id =' . $video_id . ' newsvid.id = ' . $video_id; 

Основная проблема заключается в том, что после этого бита

WHERE newsvid.id = ' . $video_id 

Ничто не работает, так что это сделать newsvid.id = 1 НО этот бит

. 'videoinformation.id =' . $video_id . ' newsvid.id = ' . $video_id; 

не признан в качестве запроса .... другими словами t его бит не является частью SQL-запроса.

В настоящее время SQL запросы только понять, что, например newsvid.id равен 1, и мне нужно, что этот запрос будет понять, что videoinformation.id и videomain.id равен 1 (идентификаторов видео), а также

Наконец это работает:

$query = 'SELECT newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidQUality, videoinformation.vidTranslated, videoinformation.vidMaker, videoinformation.vidRoles, videoinformation.vidTime, videoinformation.imgShot1, videoinformation.imgShot2, videoinformation.imgShot3, videomain.vidMUrl FROM newsvid, videomain, videoinformation WHERE newsvid.id = 1 AND videoinformation.id = 1 AND videomain.id = 1; 

НО InstEd из "1" мне нужно $ video_id.

Потому что у меня есть PHP <?php $video_id = $_GET['id']; ?>

ДЛЯ МЕНЯ помогает

SELECT newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidQUality, videoinformation.vidTranslated, videoinformation.vidMaker, videoinformation.vidRoles, videoinformation.vidTime, videoinformation.imgShot1, videoinformation.imgShot2, videoinformation.imgShot3, videomain.vidMUrl FROM newsvid, videomain, videoinformation WHERE newsvid.id = videoinformation.id AND newsvid.id = videomain.id AND newsvid.id = '. $video_id ; 
+1

Использование подготовленных операторов: http://php.net/manual/en/pdo.prepared-statements.php –

+0

как именно в этом случае я могу это сделать? – Denis

+0

ваш вопрос непонятен ... найти способ перефразировать –

ответ

0

Попробуйте это:

$query = "SELECT newsvid.id, ...... videoinformation.imgShot3, videomain.vidMUrl 
      FROM newsvid, videomain, videoinformation 
      WHERE newsvid.id = " . $video_id . " AND videoinformation.id =" . $video_id . "     
      AND newsvid.id = " . $video_id; 

или версия:

$query = "SELECT newsvid.id, ...... videoinformation.imgShot3, videomain.vidMUrl 
      FROM newsvid, videomain, videoinformation 
      WHERE newsvid.id = " . $video_id . " OR videoinformation.id =" . $video_id . "     
      OR newsvid.id = " . $video_id; 

и сообщите нам, если либо помог вам ,

Если это все еще не работает, дамп запроса $ и попробуйте его вручную в phpmyadmin (или любом другом интерфейсе, который вы используете) и вставьте здесь ошибку.

P.S БУДЬТЕ ОСТОРОЖНЫ КАК КОЛОНКИ В КАЖДОМ ТАБЛИЦЕ ИМУТЫ !!!

L.E: это ваш запрос

SELECT newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, 
newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidQUality, videoinformation.vidTranslated, videoinformation.vidMaker, videoinformation.vidRoles, videoinformation.vidTime, videoinformation.imgShot1, videoinformation.imgShot2, videoinformation.imgShot3, videomain.vidMUrl 
FROM newsvid, videomain, videoinformation 
WHERE newsvid.id = 1 AND videoinformation.id = 1 AND videomain.id = 1; 

Вы пытаетесь выбрать значения из нескольких таблиц, и для этого вам нужно join (нажмите для получения более подробной информации).

так что ваш запрос должен быть:

SELECT ... 
FROM newsvid as nw 
JOIN videomain as vm ON nw.id = vm.id 
JOIN videoinformation as vi ON vi.id = vm.id 
WHERE nw.id = video_id ; 

в PHP:

$query = "SELECT ... 
FROM newsvid as nw 
JOIN videomain as vm ON nw.id = vm.id 
JOIN videoinformation as vi ON vi.id = vm.id 
WHERE nw.id = ". $video_id ; 

где северо-запад, VM и VI являются псевдонимами для таблиц и идентификаторам видео является FK за то, что я думаю, что это PK в видеоимени. Если нет, перепишите запрос с соответствующими значениями.

+0

Я проверил каждый столбец ... но все же после этого «WHERE newsvid.id =». $ video_id «запрос не распознал ничего» – Denis

+0

выгрузите запрос и вставьте его здесь. Кроме того, если у вас есть ошибка mysql, которая поможет! –

+0

SELECT newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear , videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidquality, videoinformation.vidTranslated, videoinformation.vidMaker, videoinformation.vidRoles, videoinformation.vidTime, videoinformation.imgShot1, videoinformation.imgS hot2, videoinformation.imgShot3, videomain.vidMUrl FROM newsvid, videomain, videoinformation WHERE newsvid.id = 1 AND videoinformation.id = 1 AND videomain.id = 1; – Denis

0

Вам необходимо присоединиться к столам. Используйте двойные кавычки. Переменная будет в порядке.Используйте внутреннее соединение, как:

"SELECT newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidQUality, videoinformation.vidTranslated, videoinformation.vidMaker, videoinformation.vidRoles, videoinformation.vidTime, videoinformation.imgShot1, videoinformation.imgShot2, videoinformation.imgShot3, videomain.vidMUrl 
FROM newsvid 
INNER JOIN videomain 
ON newsvid.id = videomain.id 
INNER JOIN videoinformation 
ON newsvid.id = videoinformation.id 
WHERE newsvid.id = $video_is"; 
Смежные вопросы