2011-12-01 3 views
0

が好きな私のように作成し、ボタンを嫌いますが、それはここで、私の記事のすべてを好きなように私は、クリックしたときに私のコードです:ボタンは、実際にすべての記事

$sql_posts = mysql_query("SELECT * FROM post WHERE mem_id='$id' ORDER BY post_date DESC LIMIT 30"); 

while($row = mysql_fetch_array($sql_posts)){ 

$postid = $row["id"]; 
$poster_id = $row["mem_id"]; 
$post_body = $row["post_body"]; 
$notokinarray = array("fucker", "ass", "shit", "fuck", "fucking", "damn", "asshole", "cunt", "damnit"); 
$okinarray = array("******", "***", "****", "****", "*******", "****", "*******", "****", "******"); 
$post_body = str_replace($notokinarray, $okinarray, $post_body); 
$post_body = ($activeLinkObject -> makeActiveLink($post_body)); 
$post_date = $row["post_date"]; 
$convertedTime = ($myObject -> convert_datetime($post_date)); 
$whenPost = ($myObject -> makeAgo($convertedTime)); 
$device = $row["device"]; 
$postlikes = $row["likes"]; 
$postlikers = $row["likers"]; 
$postdislikes = $row["dislikes"]; 
$postdislikers = $row["dislikers"]; 

機能のように(これはどこです問題はそうであるようです)

$visitor = $_SESSION['id']; 
     if (isset($_POST['likeIt'])) { 
      if ($postlikers != "") { 

       $postlikers = "$postlikers,$visitor"; } else { $postlikers = "$visitor"; 
       $UpdateArrayLikers = mysql_query("UPDATE post SET likers='$postlikers' WHERE id='$postid'") or die (mysql_error()); 
       $UpdateArrayLikers = mysql_query("UPDATE post SET likes=likes + 1 WHERE id='$postid'") or die (mysql_error()); 
       header("location: profile.php?id=$id"); 
       } 
     } 

    // Inner sql query 
$sql_mem_data = mysql_query("SELECT id, username, firstname, lastname FROM myMembers WHERE id='$poster_id' LIMIT 1"); 
while($row = mysql_fetch_array($sql_mem_data)){ 
     $uid = $row["id"]; 
     $name = $row["username"]; 
     $fname = $row["firstname"]; 
     $lname = $row["lastname"]; 
     $commentForm = ' 
      <form id="form1" name="form1" method="post" action="profile.php?id='.$id.'" style="padding-top:-10;"> 
       <textarea onfocus="value=\'\'" value="Write a comment..." name="comments" id="comments" rows="1"></textarea> 
       <input type="submit" name="comment" id="comment" value="comment" /> 
      </form>'; 



     if (isset($_POST['dislikeIt'])) { 
      $thisPostDislikers = explode(",", $postdislikers); 
      if (!in_array($visitor, $thisPostDislikers)) { 
       if ($postdislikers != "") { $postdislikers = "$postdislikers,$visitor"; } else { $postdislikers = "$visitor"; } 
       $UpdateArrayDislikers = mysql_query("UPDATE post SET dislikers='$postdislikers' WHERE id='$postid'") or die (mysql_error()); 
       $UpdateArrayDislikers = mysql_query("UPDATE post SET dislikes=dislikes + 1 WHERE id='$postid'") or die (mysql_error()); 
       header("location: profile.php?id=$id"); 
      } 
     } 
     if ($id) { 
      $thisPostLikers = explode(",", $postlikers); 
      if (in_array($visitor, $thisPostLikers)){ 
       $likesPost = true; 
      } 
     } 
     if ($id) { 
      $thisPostDislikers = explode(",", $postdislikers); 
      if (in_array($visitor, $thisPostDislikers)){ 
       $dislikesPost = true; 
      } 
     } 

     if ($fname != "") {$name = "$fname $lname"; } // (I added usernames late in my system, this line is not needed for you) 
     /////// Mechanism to Display Pic. See if they have uploaded a pic or not ////////////////////////// 
     $ucheck_pic = "members/$uid/image01.jpg"; 
     $udefault_pic = "members/0/image01.png"; 
     if (file_exists($ucheck_pic)) { 
      $post_pic = '<div style="overflow:hidden; height:40px;"><img src="' . $ucheck_pic . '" width="40px" border="0" /></div>'; 
     } else { 
      $post_pic = '<div style="overflow:hidden; height:40px;"><img src="' . $udefault_pic . '" width="40px" border="0" /></div>'; 
     } 
     if ((!$likesPost) && (!$dislikesPost)) { 
     $postDisplayList .= ' 
      <table style="background-color:#FFF; border:#999 1px solid; border-top:none;" cellpadding="5" width="100%"> 
       <tr> 
        <td width="10%" valign="top"><a href="profile.php?id=' . $poster_id . '">' . $post_pic . '</a> 
        </td> 
        <td width="90%" valign="top" style="line-height:1.5em;"> 
         <span class="liteGreyColor textsize11"> ' . $whenPost . ' <a href="profile.php?id=' . $poster_id . '"><strong>' . $name . '</strong></a> 
         via <em>' . $device . '</em></span><br /> 
         <span> ' . $post_body . '</span> 
         <span> 
          <form id="likeForm" name="likeForm" method="post" action="" style="padding-bottom:-20;"> 
           <input type="submit" name="likeIt" value="Like" /> 
           <input type="submit" name="dislikeIt" value="Dislike" />&nbsp;'.$postlikes.'&nbsp;people like this. 
          </form> 
         </span> 
        </td> 
       </tr> 
       <tr> 
        <td>' . $commentList . ' </td> 
        <td>' . $commentForm . ' </td> 
       </tr> 
      </table>'; 
    } else if ((!$likesPost) && ($dislikesPost)) { 
     $postDisplayList .= ' 
      <table style="background-color:#FFF; border:#999 1px solid; border-top:none;" cellpadding="5" width="100%"> 
       <tr> 
        <td width="10%" valign="top"><a href="profile.php?id=' . $poster_id . '">' . $post_pic . '</a> 
        </td> 
        <td width="90%" valign="top" style="line-height:1.5em;"> 
         <span class="liteGreyColor textsize11"> ' . $whenPost . ' <a href="profile.php?id=' . $poster_id . '"><strong>' . $name . '</strong></a> 
         via <em>' . $device . '</em></span><br /> 
         <span> ' . $post_body . '</span> 
        </td> 
       </tr> 
       <tr> 

        <td>' . $commentList . ' </td> 
        <td>' . $commentForm . ' </td> 
       </tr> 
      </table>'; 
    } else if ((!$dislikesPost) && ($likesPost)) { 
     $postDisplayList .= ' 
      <table style="background-color:#FFF; border:#999 1px solid; border-top:none;" cellpadding="5" width="100%"> 
       <tr> 
        <td width="10%" valign="top"><a href="profile.php?id=' . $poster_id . '">' . $post_pic . '</a> 
        </td> 
        <td width="90%" valign="top" style="line-height:1.5em;"> 
         <span class="liteGreyColor textsize11"> ' . $whenPost . ' <a href="profile.php?id=' . $poster_id . '"><strong>' . $name . '</strong></a> 
         via <em>' . $device . '</em></span><br /> 
         <span> ' . $post_body . '</span> 
         <span>       
          <form id="dislikeForm" name="dislikeForm" method="post" action=""> 
           <input type="submit" name="dislikeIt" value="Dislike" />&nbsp;'.$postlikes.'&nbsp;people like this. 
          </form> 
         </span> 
        </td> 
       </tr> 

       <tr><td>' . $commentList . ' </td></tr> 
       <tr><td>' . $commentForm . ' </td></tr> 
      </table>'; 
    } else { 
     $postDisplayList .= ' 
      <table style="background-color:#FFF; border:#999 1px solid; border-top:none;" cellpadding="5" width="100%"> 
       <tr> 
        <td width="10%" valign="top"><a href="profile.php?id=' . $poster_id . '">' . $post_pic . '</a> 
        </td> 
        <td width="90%" valign="top" style="line-height:1.5em;"> 
         <span class="liteGreyColor textsize11"> ' . $whenPost . ' <a href="profile.php?id=' . $poster_id . '"><strong>' . $name . '</strong></a> 
         via <em>' . $device . '</em></span><br /> 
         <span> ' . $post_body . '</span> 
        </td> 
       </tr> 
       <tr><td>&nbsp;'.$postlikes.'&nbsp;people like this.' . $commentList . ' </td></tr> 
      </table>'; 
    } 
} 

} 

最初のwhileループのような機能はすべての投稿のようにユーザを行います。

+1

ちなみにnice bug、 – marcio

+0

ここで、 '$ postid'は2番目のスニペットに設定されていますか? –

+0

$ postidが遠くに宣言されていますが、そのコードは実際に忘れてしまいました。コメントありがとうございました –

答えて

0

投稿者のすべての投稿をあなたのポスターIDで取得します。 これらの投稿をループします。 ループ内では、最初のwhileループの後に、再度poster idを使用してmyMembersテーブルによってユーザーデータを取得します。 そして、2番目のwhileループの中で、現在の投稿IDのデータを更新します。

最初のwhileループはすべての投稿を繰り返しますので、2番目のinner whileループのすべての投稿IDの詳細を更新します。

問題は最初の外側whileループのSQLクエリですそれともあなたは逃した何かもしれすると、

   $UpdateArrayLikers = mysql_query("UPDATE post SET likers='$postlikers' WHERE id='$postid'") or die (mysql_error()); 
       $UpdateArrayLikers = mysql_query("UPDATE post SET likes=likes + 1 WHERE id='$postid'") or die (mysql_error()); 
       header("location: profile.php?id=$id"); 

if ($postlikers != "") { $postlikers = "$postlikers,$visitor"; } else { $postlikers = "$visitor"; } 

内部の状態を含める必要があるということです。

編集:$ postlikersのみが空でない場合、好き嫌いのために投稿テーブルを更新する必要があります。このようなもの。

if ($postlikers != "") { 

$postlikers = "$postlikers,$visitor"; } else { $postlikers = "$visitor"; 
$UpdateArrayLikers = mysql_query("UPDATE post SET likers='$postlikers' WHERE id='$postid'") or die (mysql_error()); 
$UpdateArrayLikers = mysql_query("UPDATE post SET likes=likes + 1 WHERE id='$postid'") or die (mysql_error()); 
        header("location: profile.php?id=$id"); 

} 
+0

最初のwhileループに好きなものを追加するif関数を移動する必要があります。 –

+0

編集を参照してください。私はあなたが "myMembers"テーブルにidを持つ行が含まれているかどうかをチェックする必要がない場合( "if"条件のように実際に動作する)2番目の内部 "while"ループの外側にこの "if" "post"テーブルを更新する前に$ poster_id。 –

+0

新しいコードで投稿を更新し、それが動作するかどうかを確認します –

関連する問題