1

以前にも同様の質問をしましたが、スクリプトに多くの変更を加えたため、前回の質問とは異なります。だから今私はこれらの変更を行いましたが、これはすべてうまくいくはずですが、そうではありません。

基本的に、ユーザーがレビューを削除または承認できるユーザーレビューがあります。現時点では、削除機能のみに焦点を当てています。

review.phpでレビューを取得し、ユーザーはdeleteをクリックしてdelete_review.phpをポイントし、functions.phpに格納されているsql関数を実行できます。

私はそれがどのように機能するかを示した正確なコードを以下にリストしましたが、それが機能しない理由を解明するために何年も費やしたことに加えて、私はそれを理解できません。[削除]をクリックすると、delete_review.phpにリンクされますが、削除するレビューのIDであるレビューIDが見つかりません。

誰かが私がこれを修正する方法を教えてもらえますか?ありがとうございました。

review.php

<?php
    $reviews_set = get_new_reviews();
    while ($reviews = mysql_fetch_array($reviews_set)) {
?>

    <div class="prof-content-pend-reviews" id="reviews">
    <div class="pend-review-content">
    <?php echo "{$reviews['content']}"; ?>
    </div>
    <div class="message_pic">
    <?php echo "<a href=\"profile.php?id={$reviews['from_user_id']}\"><img width=\"50px\" height=\"50px\" src=\"data/photos/{$reviews['from_user_id']}/_default.jpg\" /></a>";?>
    </div>

    <div class="forum-text">
    <?php echo "Posted by {$reviews['display_name']}"; ?> <?php echo "".$age." days ago"; ?>
    </div>

    <a href="includes/delete_review.php?review=<?php echo $reviews['review']; ?>"><div class="delete"></div></a>
    </div>

    <? }  ?>

function.php

function delete_review($review, $user) {
                        global $connection;
            global $_SESSION;
                        $query = "UPDATE ptb_reviews
                                    SET deleted='1'
                                    WHERE id=$review 
                                    AND to_user_id=$user";
            mysql_query($query, $connection);
                }   


function get_new_reviews() {
            global $connection;
            global $_SESSION;
            $query = "SELECT r.from_user_id, p.display_name, r.content, r.id reviews_id, r.date_added
                        FROM ptb_reviews r, ptb_profiles p
                        WHERE r.to_user_id =".$_SESSION['user_id']."
                        AND r.deleted = '0'
                        AND r.read_review = '0'
                        AND p.user_id = r.from_user_id
                        ORDER BY r.date_added DESC ";


                        $reviews_set = mysql_query($query, $connection);
            confirm_query($reviews_set);
            return $reviews_set;
        }  

delete_review.php

    <?php
    require_once("session.php"); 
    require_once("functions.php");
    require('_config/connection.php');
    delete_review ($_GET['review'], $_SESSION['user_id']);
    ?>
4

2 に答える 2

1

1-ファイルの先頭session_start();でセッションを開始するかどうかを確認 しますreview.php

2-これを見て

   $query = "SELECT r.from_user_id, p.display_name, r.content, r.id reviews_id, r.date_adde
                                                                   ^--------what this space ?

3-あなたの機能でやろうとしglobal $_SESSION['user_id']ます。

4言及されているように、それ$reviewsまたは$reviews_idここにあるかどうかを確認してくださいROY Finley

   <a href="includes/delete_review.php?review=<?php echo $reviews['review']
                                                                      ^----------here
于 2012-12-28T21:40:06.513 に答える
0

私はこう思います:

 $reviews['review']

多分これであるべきです:

 $reviews['reviews_id']

よくわかりませんが、コードを改善する必要があります。本当に mysqli または PDO を調べる必要があります。これらはすべて、単純なクラスで簡単に実行できます。

于 2012-12-28T21:36:48.633 に答える