繁体   English   中英

PHP 在 URL 变量中只显示 MySQL 记录中的一个词

[英]PHP displays only one word from MySQL record in URL variable

PHP 页面在 URL 变量中仅显示 MySQL 记录中的一个单词,而它在 HTML 输出中显示正确的 2 个单词,我尝试了许多解决方案,例如'".$row['book_category']."'{$row['book_category']}等,但我仍然得到相同的结果。

<?php
    foreach($conn->query('SELECT book_category, COUNT(*) FROM books GROUP BY book_category') as $row) {
        echo "<tr>";
        echo "<td>" . "<a href=" . "sidebar_cat_display.php?book_cat=" . $row['book_category'] . ">" . $row['book_category'] . "</a>" . "</td>";
        echo "</tr>"; 
    }
?>

所以现在第一个$row insert 只是 url 中的一个单词,而第二个$row按预期正确输出两个单词; 问题是我需要将这两个词作为 URL 中的变量传递。

URL 不能有空格字符,这就是为什么您只看到第一个单词,您需要使用rawurlencode()对收到的值进行编码。

<?php
    foreach($conn->query('SELECT book_category, COUNT(*) FROM books GROUP BY book_category') as $row) {
        echo "<tr>";
        echo "<td>" . "<a href='sidebar_cat_display.php?book_cat=" . rawurlencode($row['book_category']) . "'>" . $row['book_category'] . "</a>" . "</td>";
        echo "</tr>"; 
    }
?>

请记住,您还需要调整sidebar_cat_display.php页面以从 URL 获取book_cat参数(如果您还没有)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM