(php) 我在 "get" 方法 link 中得到了额外的代码
(php) I get extra code in "get" method link
我在溢出中的第一个问题:)
我试图创建一个 table 来显示来自 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>";
}
}
我看到了我创建的 table 中的所有帖子,一切正常。
问题是当我尝试删除其中一个帖子时(使用 "get" 方法删除 href)。
出于某种原因我无法理解,在 chrome 的地址行上我得到了一个额外的 </td>
.
我被引导至:posts.php?delete=6</td>
。
谁能理解为什么会这样?
谢谢!
$post_id_display = $row['post_id'] . "</td>";
会将 $post_id_display
设置为 $row['post_id']
,然后将 </td>
连接到它。
无需将这些值存储在单独的变量中。直接使用 $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>";
...它应该可以工作。
作为对@MagnusEriksson 的回答的扩展,只是 test/simplification 正在发生的事情:
你现在在做什么:
$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
我在溢出中的第一个问题:)
我试图创建一个 table 来显示来自 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>";
}
}
我看到了我创建的 table 中的所有帖子,一切正常。
问题是当我尝试删除其中一个帖子时(使用 "get" 方法删除 href)。
出于某种原因我无法理解,在 chrome 的地址行上我得到了一个额外的 </td>
.
我被引导至:posts.php?delete=6</td>
。
谁能理解为什么会这样?
谢谢!
$post_id_display = $row['post_id'] . "</td>";
会将 $post_id_display
设置为 $row['post_id']
,然后将 </td>
连接到它。
无需将这些值存储在单独的变量中。直接使用 $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>";
...它应该可以工作。
作为对@MagnusEriksson 的回答的扩展,只是 test/simplification 正在发生的事情:
你现在在做什么:
$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