1

我之前问过一个类似的问题,但是我对我的脚本做了很多更改,现在我的问题与我的上一个问题不同。所以现在我已经完成了这些更改,这应该都可以正常工作,但事实并非如此。

我基本上有用户评论,用户可以在其中删除或批准评论。我现在只关注删除功能。

我们在reviews.php 中提取评论,用户可以单击delete 指向delete_review.php,然后运行存储在functions.php 中的sql 函数。

我在下面列出了它如何工作的确切代码,但除了我花了很长时间试图弄清楚它为什么不起作用之外,我无法弄清楚。当我们单击删除时,它会链接到 delete_review.php,但它不会找到要删除的评论的 id。

有人可以告诉我如何解决这个问题。谢谢你。

审查.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>

    <? }  ?>

函数.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 回答