【问题标题】:(php) I get extra code in "get" method link(php) 我在“get”方法链接中得到额外的代码
【发布时间】:2019-01-12 01:34:27
【问题描述】:

我在溢出中的第一个问题 :)

我试图创建一个表来显示来自 SQL 的所有帖子。 我已经完成了下一个代码:

function show_all_posts_in_table(){
        global $connection;
        $query = "SELECT * FROM posts";
        $all_posts_content_query = mysqli_query($connection,$query);

        while ($row = mysqli_fetch_assoc($all_posts_content_query)) {
            $post_id_display = $row['post_id'];
            echo "<tr>";
            echo "<td>" . $post_id_display = $row['post_id'] . "</td>";
            echo "<td>" . $post_category_display = $row['post_category_id'] . "</td>";
            echo "<td>" . $post_title_display = $row['post_title'] . "</td>";
            echo "<td>" . $post_author_display = $row['post_author'] . "</td>";
            echo "<td>" . $post_date_display = $row['post_date'] . "</td>";
            $post_image_display = $row['post_image'];
            echo "<td>" . "<img src= '../images/{$post_image_display}' width='200' height='auto'>" . "</td>";
            echo "<td>" . $post_content_display = $row['post_content'] . "</td>";
            echo "<td>" . $post_tags_display = $row['post_tags'] . "</td>";
            echo "<td>" . $post_status_display = $row['post_status'] . "</td>";
            echo "<td>{$post_id_display}</td>";
            echo "<td> <a href='posts.php?delete={$post_id_display}'>DELETE</a> </td>";
            echo "</tr>";
}
}

我看到了我创建的表格中的所有帖子,并且一切正常。

问题是当我尝试删除其中一篇文章时(使用“get”方法删除href)。

由于某种我无法理解的原因,在 chrome 的地址行上我得到了一个额外的&lt;/td&gt;

我已被定向到:posts.php?delete=6&lt;/td&gt;

谁能理解为什么会这样?

谢谢!

【问题讨论】:

    标签: php sql methods get slug


    【解决方案1】:

    $post_id_display = $row['post_id'] . "&lt;/td&gt;"; 会将$post_id_display 设置为$row['post_id'],然后将&lt;/td&gt; 连接到它。

    无需将这些值存储在单独的变量中。只需直接使用$row 数组即可。

    改成:

    while ($row = mysqli_fetch_assoc($all_posts_content_query)) {
        echo "<tr>";
        echo "<td>" . $row['post_id'] . "</td>";
        echo "<td>" . $row['post_category_id'] . "</td>";
        echo "<td>" . $row['post_title'] . "</td>";
        echo "<td>" . $row['post_author'] . "</td>";
        echo "<td>" . $row['post_date'] . "</td>";
        echo "<td>" . "<img src= '../images/" . $row['post_image'] . "' width='200' height='auto'>" . "</td>";
        echo "<td>" . $row['post_content'] . "</td>";
        echo "<td>" . $row['post_tags'] . "</td>";
        echo "<td>" . $row['post_status'] . "</td>";
        echo "<td>" . $row['post_id'] . "</td>";
        echo "<td> <a href='posts.php?delete=" . $row['post_id'] . "'>DELETE</a> </td>";
        echo "</tr>";
    

    ...它应该可以工作。

    【讨论】:

    • 效果很好!谢谢!另外,你能解释一下为什么我会在 slug 中得到这个 td 吗?
    • @ahiadhazan - 我确实解释了第一句话。您还可以阅读 Jeff 的回答,其中有更详细的解释。
    • 不好意思,刚看到,非常感谢我的朋友! :)
    【解决方案2】:

    作为@MagnusEriksson 的回答的延伸,只是对正在发生的事情进行了一点测试/简化:

    你现在做什么:

    $a = "A";
    $b = "B";
    echo "x" . $a = $b . "y"; // -> xBy
    echo " value of A: ".$a; // -> value of A: By
    

    这可行:

    $a = "A";
    $b = "B";
    echo "x" . ($a = $b) . "y"; // -> xBy
    echo " value of A: ".$a;  // -> value of A: B
    

    【讨论】:

    • 刚刚得到它,非常感谢你的帮助我的朋友:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多