2014-10-23 2 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 (VIDEO_ID)에 동일한 것을 필요 노력하고 있습니다 :

$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가 필요합니다.

$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; 

OR 버전 :

$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; 

과 하나가 당신을 도움이 있다면 저희에게

내가 나를 위해 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를 덤프하고 phpmyadmin (또는 사용중인 인터페이스)에서 수동으로 시도한 다음 여기에 오류를 붙여 넣으십시오.

p.s 각 테이블의 괄호에주의하십시오 !!!

L.E :이 여러 테이블에서 값을 선택하기 위해 노력하고 있으며,이를 위해, 당신은 join (자세한 내용은 클릭)가 필요 쿼리

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; 

입니다.

때문에 쿼리가 있어야한다 : PHP에서

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 NW 및 VI 내가 PK 무슨 생각에 대한 FK있는 테이블과 VIDEO_ID 앨리어스 (alias)
$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 ; 

비디오 메 인에서. 그렇지 않으면 쿼리를 적절한 값으로 다시 작성하십시오.

+0

나는 모든 열을 ...하지만 여전히이 "newsvid.id =". $ video_id "쿼리는 아무것도 인식하지 못했습니다. – Denis

+0

쿼리를 덤프하여 여기에 붙여 넣으십시오. 또한 도움이 될 mysql 오류가있는 경우! –

+0

select newsvid.id, videoinformation.id, videomain.id, newsvid.vidTitle, newsvid.imgCover, videoinformation.vidLD, videoinformation.vidYear , 비디오 정보 .vidCity, 비디오 정보 .vidZanr, 비디오 정보, 비디오 정보, 비디오 정보 .vid 번역 된 비디오 정보 .vidMaker, 비디오 정보 .vid 역할, 비디오 정보 .vidTime, 비디오 정보 .imgShot1, 비디오 정보 .imgS hot2, videoinformation.imgShot3, videomain.vidMUrl FROM newsvid, videoide, videoinformation 여기서 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"; 
관련 문제