2014-02-17 2 views
-4

두 테이블에서 정보를 가져올 주석 시스템에서 작업하고 있습니다. 첫 번째 쿼리의 결과 (발견 된 ID)가 두 번째 쿼리의 결과에 영향을 미칩니다. 내 테이블은 이렇게 보입니다.PHP가 MySQL 쿼리에 합류했습니다

회원

아이디, FIRST_NAME, LAST_NAME, 이메일, 비밀번호, Img_url, Activation_No, 활성화 및 날짜

게시물

가 이 PostId, 리스팅, 텍스트, ForumId, DatePosted가, 좋아,

을 싫어하는

내가 사용하는 코드는 다음과 같습니다.

<?php 
    // retrive post 
    include('php/config.php'); 
    include ('php/function.php'); 

    // retrive comments with post id 

$stmt = $mysqli->prepare("SELECT (posts.Email,posts.Text) FROM posts WHERE posts.ForumId = '$forumId' LEFT JOIN SELECT (members.Img_url) FROM members WHERE members.Email = (posts.Email)"); 
$stmt->execute(); 
$stmt->bind_result($PostId,$Email,$Text,$ForumId,$DatePosted,$Likes,$Dislikes,$usr_img); 
$stmt->fetch(); 
    print "<div class=comment-item>"; 
    print "<div class=comment-avatar>"; 
    print "<img src=".$usr_img."alt=avatar>"; 
    print "</div>"; 
    print "<div class=comment-post>"; 
    print  "<h4>" .$Email. "<span> said....</span></h4>"; 
    print  "<p>" .$Text. "</p>"; 
    print "</div>"; 
    print"</div>"; 
$stmt->close(); 
?> 

내가받는 오류 메시지는 다음과 같습니다.

Fatal error: Call to a member function execute() on a non-object in C:\Users\PC\Documents\XAMPP\htdocs\post.php on line 90

+1

mysql 인터페이스를 통해 또는 콘솔을 통해 수동으로 쿼리를 실행하고 오류가 있습니까? –

+1

검색어가 잘못되었으므로 google mysql이 올바른 구문에 참여하기 위해 왼쪽으로 이동했습니다. 치명적인 오류가 혼자 해결됩니다 쿼리를 수정하면 – CodeBird

답변

1

SQL 쿼리에 오류가 있습니다. 귀하의 prepare() 쿼리가 실패하는이

SELECT posts.Email, posts.Text, members.Img_url 
FROM posts 
LEFT JOIN members 
    ON members.Email = posts.Email 
WHERE posts.ForumId = '$forumId' 
0

을 시도 , 그래서 $stmt이 아닌 개체입니다. WHERE 이후에 LEFT JOIN을 가질 수 없으며 JOINON이 아니고 WHERE을 사용하므로 검색어 구문이 잘못되었습니다. ) 나는 다음과 같이 작동 희망, this-

$stmt = $mysqli->prepare("SELECT posts.Email,posts.Text, members.Img_url FROM posts LEFT JOIN members ON members.Email = posts.Email WHERE posts.ForumId = '$forumId'") ; 
0
SELECT posts.Email, posts.Text, members.Img_url 
FROM posts 
LEFT JOIN members ON members.Email = posts.Email 
WHERE posts.ForumId = '$forumId' 

당신은 정말 ... 당신은 여기에 몇 가지 실수를 mysql을의 구문을 확인해야 뭔가를보십시오.