我将查询参数传递给另一个页面时遇到了一些问题。
我想让餐馆的名称成为一个链接,该链接将传递产品名称以在下一页上处理查询。
echo "<p class='p2'><a class='link' href='restaurant.php?name=". $row['name'] ."'><strong>". $row['name'] ."</strong></a>
在餐厅页面上
<?php
require ("db.php");
$name = $_GET['name'];
$query = "SELECT * FROM restaurant WHERE name =\"$name\"";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
?>
但没有显示任何内容。
知道我做错了吗?
答案 0 :(得分:4)
首先,请注意:您应该传递ID而不是名称,因为某些字符在网址中不是很好。
其次,尝试在名称上使用urlencode()
。
echo "<p class='p2'><a class='link' href='restaurant.php?name=". urlencode($row['name']) ."'><strong>". $row['name'] ."</strong></a>
答案 1 :(得分:1)
当然它不会显示任何内容,因为你的文件中没有任何print
函数(echo,print,var_dump,...)。
无论如何,您可能认为您的查询不起作用。如果是,请尝试echo
您的$row['name']
。如果一切正常,请检查您的变量是否已设置,但可能不是因为您获得null
。
示例:
if(!empty($_GET['name'])) $name = $_GET['name'];
else die('Variable name is empty');
还要尝试将ini_set('display_errors', true)
添加到页面顶部以查看是否存在任何错误。
请注意,您的代码非常不安全且容易受到攻击。在执行查询之前使用mysql_real_escape_string()
。
示例:
$name = mysql_real_escape_string($_GET['name']);