2015-11-10 276 views
0

夥計們im試圖加入評論表來張貼在以下查詢表中。mysql查詢返回空結果

$sql3=" 
select u.update_body 
    , u.author 
    , u.time 
    , u.title 
    , c.comment_body 
    , c.os_id 
    , c.author 
    , c.time 
    from updates as u 
    join comment_update as c 
    on c.os_id = :statusid 
    and u.account_name = :session 
    and u.type = ('a'&'c') 
    or u.account_name = :friend 
    and u.type = ('a'&'c') 
order 
    by u.time asc 
    , c.time desc"; 

     $stmth=$conn->prepare($sql3); 
     $stmth->bindValue(":session",$_SESSION['uname']); 
     $stmth->bindValue(":friend",$friend); 
     $stmth->bindValue(":statusid",$updateid); 
     $stmth->execute(); 

它返回空結果不知道我要去哪裏錯了???。任何幫助,將不勝感激。 這裏是我的DB模式: DB schema

按ARSH的請求IM張貼整個代碼在這裏:

<?php 
include "includes/dbconfig.inc.php"; 
    $status_replies=""; 
     $status_list=""; 
     $statusui_edit=""; 
     $isowner=""; 
     $is_friend=""; 
     $friends = array(); 
$stmt= $conn->prepare("select friend_one, friend_two from friends where " 
     . "(friend_one=:session OR friend_two=:session) and accepted='1'"); 
$stmt->bindparam(":session",$_SESSION['uname']); 
$stmt->execute(); 
$status2view=$project->statusView($_SESSION['uname']); 

foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $i=> $r) { 
    $r["friend_one"] == $_SESSION['uname'] ? $friends[]= $r["friend_two"] : $friends[] = $r["friend_one"]; 
$friend=$friends[$i]; 
foreach ($status2view as $val) { 
    $updateid=$val['update_id']; 

//select all relevant comments using the following query and print it. 
     $sql1="select u.update_body,u.author,u.time,u.title," 
       . "c.comment_body, c.os_id,c.author,c.time " 
       . "from updates as u join comment_update as c " 
       . "on c.os_id=:statusid and u.account_name = :session and u.type = ('a'&'c') or u.account_name=:friend and u.type = ('a'&'c') order by u.time asc,c.time desc"; 
     $sql2=" select u.update_body,u.author,u.time,u.title," 
       . "c.comment_body, c.os_id,c.author,c.time " 
       . "from updates as u join comment_update as c " 
       . "on c.os_id=u.update_id where u.account_name = :session and u.type = ('a'&'c') or u.account_name=:friend and u.type = ('a'&'c') order by u.time asc,c.time desc"; 

     $stmth=$conn->prepare($sql2); 
     $stmth->bindValue(":session",$_SESSION['uname']); 
     $stmth->bindValue(":friend",$friend); 
     //$stmth->bindValue(":statusid",$updateid); 
     $stmth->execute(); 
     $status_reply= $stmth->fetchAll(PDO::FETCH_ASSOC); 
     print_r($status_reply); 
     foreach ($status_reply as $row1) { 


       $status_reply_id=$row1['comment_id']; 
       $reply_author=$row1['author']; 
       $reply_d=htmlentities($row1['comment_body']); 
       $reply_data= stripslashes($reply_d); 
       $reply_osid=$row1['os_id']; 
       $reply_date=$row1['time']; 

     $reply_delete_button=""; 


       if ($reply_author==$_SESSION['uname']) { 
        $reply_delete_button="<li><a href='#'type='".$status_reply_id."' class='delete_reply_btn glyphicon glyphicon-trash delete_reply_".$status_reply_id."' title='Delete this comment'> Remove</a></span></li>"; 
       } 
       if ($reply_osid==$updateid && $isowner=="yes") { 
       $status_replies="<div class='replyboxes pull-left reply_".$status_reply_id."'>" 
         . "Reply by:- " 
         . "<a href='home.php?u=".$reply_author."'>".$reply_author."</a>" 
         . "<span class='pull-right'>".$reply_date 
         . "<b class='dropdown'> 
         <small><span class='btn btn-xs btn-danger dropdown-toggle pull-right' data-toggle='dropdown' > 
         <span class='glyphicon glyphicon-edit'></span></span> 
         <ul class='dropdown-menu'>".$reply_delete_button 
         . "<li><a class='glyphicon glyphicon-warning-sign' href='report.php?u=".$reply_author."'> Report</a><li></ul></span>" 
         . "</small></b><br><legend>". html_entity_decode($reply_data)."</legend><br></div>"; 
       } 
       elseif ($reply_osid==$updateid && $is_friend==TRUE && $session_uname!=$f_uname) { 
       $status_replies.="<div class='replyboxes pull-left reply_".$status_reply_id."'>" 
         . "Reply by:-" 
         . "<a href='home.php?u=".$reply_author."'>".$reply_author."</a>" 
         . "<span class='pull-right'>".$reply_date." 
          <b class='dropdown'> 
         <small><span class='btn btn-xs btn-danger dropdown-toggle pull-right' data-toggle='dropdown' > 
         <span class='glyphicon glyphicon-edit'></span></span> 
         <ul class='dropdown-menu'>".$reply_delete_button 
         . "<li><a class='glyphicon glyphicon-warning-sign report_btn report_".$updateid."' type='".$updateid."' href='report.php?u=".$reply_author."'> Report</a><li></ul></span>" 
         . "</small></b><br>" 
         . "</span><br><legend>". html_entity_decode($reply_data)."</legend><br></div>"; 

       } 
       else { 
        $status_replies.=""; 
       } 


     $updateid=$row1['update_id']; 

       $author=$row1['author']; 
       $post_date=$row1['time']; 
       $title= stripslashes($row1['title']); 
       $data= stripslashes($row1['update_body']); 
          $statusdeletebutton=''; 

       if ($author==$_SESSION['uname'] || $account_name==$_SESSION['uname']) { 
       $statusdeletebutton='<li>' 
          . '<a href="#" type="'.$updateid.'" class="delete_4_session hidden_text_delete_'.$updateid.' glyphicon glyphicon-trash delete_reply_btn" title="Delete this status and its replies">Remove</a></li>'; 
       } 


       $status_list= $statusui_edit.'<div attr="'.$updateid.'" type="'.$updateid.'" class="statusboxes status_'.$updateid.' jumbotron">' 
         . '<h3 style="color:black; margin-bottom:5px; margin-top:5px;" class="pull-left">' 
         . '<div id="'.$updateid.'" class="title_s_2copy" value="'.html_entity_decode($title).'">'.html_entity_decode($title).'</div></h3>' 
         . '<span class="pull-right">' 
         . '<div class="dropdown">' 
         . '<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" >' 
         . '<span class="glyphicon glyphicon-edit"></span></button>' 
         . '<ul class="dropdown-menu">' 
         . '<li><a href="#" attr="'.$updateid.'" type="'.$updateid.'" class="edit_4_session hidden_text_edit glyphicon glyphicon-pencil" title="Edit this status" >Edit</a></li>'.$statusdeletebutton.'</ul></div></span><br><hr>' 
         . '<legend><span class=" data_s_2copy" type="'.$updateid.'" >' 
         . html_entity_decode($data).'</span><br><br></legend><b style="text-align:right; color:black;"><small>Posted by:- <a href="home.php?u='.$author.'">'.$author. '</a> '.$post_date.'</small></b>' 
         . '<br><p>'.$status_replies.'</p><br>'; 

        $status_list= '<textarea id="reply_textarea_'.$updateid.'" class="status_reply_'.$updateid.' input-custom2" placeholder="comment\'s"></textarea>' 
          . '<button id="reply_btn_'.$updateid.'" attr="'.$updateid.'" type="b" class="btn btn-warning pull-right btn-sm reply_btn reply_'.$updateid.'">Reply</button></div>'; 


       echo "$status_list"; 




}   }  } 

$row1的var_dump值:

array(42) { 
    [0]=> 
    array(12) { 
    ["update_body"]=> 
    string(66) "<p>wsdcv uyhnb pl., dc kl, fvc yhb ikjm &nbsp;</p>" 
    ["author"]=> 
    string(12) "shan2batman1" 
    ["time"]=> 
    string(19) "2015-10-29 11:04:28" 
    ["title"]=> 
    string(3) "wtf" 
    ["account_name"]=> 
    string(12) "shan2batman1" 
    ["update_id"]=> 
    string(2) "46" 
    ["comment_body"]=> 
    string(21) "qwerty 2 shan2batman1" 
    ["os_id"]=> 
    string(3) "116" 
    ["author_c"]=> 
    string(12) "shan2batman1" 
    ["time_c"]=> 
    string(19) "2015-11-04 14:21:35" 
    ["comment_id"]=> 
    string(1) "5" 
    ["type_c"]=> 
    string(1) "b" 
    } 
    [1]=> 
    array(12) { 
    ["update_body"]=> 
    string(66) "<p>wsdcv uyhnb pl., dc kl, fvc yhb ikjm &nbsp;</p>" 
    ["author"]=> 
    string(12) "shan2batman1" 
    ["time"]=> 
    string(19) "2015-10-29 11:04:28" 
    ["title"]=> 
    string(3) "wtf" 
    ["account_name"]=> 
    string(12) "shan2batman1" 
    ["update_id"]=> 
    string(2) "46" 
    ["comment_body"]=> 
    string(16) "hello boogeyman!" 
    ["os_id"]=> 
    string(3) "116" 
    ["author_c"]=> 
    string(6) "qwerty" 
    ["time_c"]=> 
    string(19) "2015-11-04 13:20:32" 
    ["comment_id"]=> 
    string(1) "3" 
    ["type_c"]=> 
    string(1) "b" 
    } 
+0

如果你'echo $ sql3;',它給了什麼? – Qirel

+0

它輸出查詢,並循環,因爲它是在一個foreach循環@Qirel – shan2batman

+0

是的,當然它確定查詢,但它看起來像什麼?如果您看到查詢的整個輸出,則有時候更容易發現錯誤。 – Qirel

回答

0

第一件事就是添加你的PHP代碼在那裏你打印結果來看看它,現在按照下面的步驟進行。

你缺少從您的查詢where條款,也on c.os_id=:statusid是錯了,因爲你是加盟的表

使用此我對c.os_id=c.comment_id的地方,但你必須在c.comment_id的地方插入你正確的列名因爲我看不到你如何命名它。 :

$sql3="select u.update_body,u.author,u.time,u.title," 
       . "c.comment_body, c.os_id,c.author,c.time " 
       . "from updates u left join comment_update c " 
       . "on c.os_id=c.comment_id WHERE u.account_name = :session or u.account_name=:friend and (u.type = 'a' or 'c') order by u.time asc,c.time desc"; 
     $stmth=$conn->prepare($sql3); 
     $stmth->bindValue(":session",$_SESSION['uname']); 
     $stmth->bindValue(":friend",$friend); 

     $stmth->execute(); 

爲運公佈他得到的錯誤狀態,這些值中的一個是空的檢查,他們需要有一個值,而不是爲空,當你不使用它也刪除$stmth->bindValue(":statusid",$updateid);了這些值的誤差,它會給你一個令牌和綁定參數的錯誤:

$stmth->bindValue(":session",$_SESSION['uname']); 
$stmth->bindValue(":friend",$friend); 
+0

儘管這可能是實際的解決方案,但您可能想要解釋您所做的改變 - 以及*爲什麼必須改變,以便OP可以從中學習,而不是在沒有從中學習任何東西的情況下完成他的工作。 – Qirel

+0

@Qirel是的,我打算這樣做,但有緊急情況,不得不去,現在解釋它 –

+0

不工作兄弟! @Arsh – shan2batman