我正在尝试创建一个包含返回“mf_id”值及其相应“制造商”值的链接的表。我可以一次做一个,但是当我尝试将两者结合起来时,问题就开始出现了。这是我到目前为止所做的:
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><a href=\"list.php?mf_id&&Manufacturer=" . $row['mf_id'&&'Manufacturer'] . "\">" . $row['Manufacturer'] . "</a></td>";
echo "</tr>";
}
和另一页:
$numb = $_GET['mf_id'];
$name = $_GET['Manufacturer'];
echo "<h1>$name</h1>";
$result=mysql_query("select * from Products where mf_id=$numb");
提前致谢!
答案 0 :(得分:4)
因为您永远不会通过您的查询字符串传递Manufacturer
,所以第二页无法通过GET
访问它。此外,出于有效性目的,您的查询字符串值应通过urlencode()
传递。
这一行:
echo "<td><a href=\"list.php?mf_id=" . $row['mf_id'] . "\">" . $row['Manufacturer'] . "</a></td>";
应该是:
echo "<td><a href=\"list.php?mf_id=" . urlencode($row['mf_id']) . "&Manufacturer=" . urlencode($row['Manufacturer']) . "'\">" . $row['Manufacturer'] . "</a></td>";
请注意:它可能无法解答您的问题,但您应该停止使用mysql_*
功能。他们被弃用了。而是使用PDO(从PHP 5.1开始支持)或mysqli(从PHP 4.1开始支持)。如果您不确定使用哪一个,read this article。
<强>更新强>
根据梅加尔的建议,我了解了http_build_query()
。在将查询字符串写入URL时,这绝对是一种方法:
$data = array('mf_id' => $row['mf_id'], 'Manufacturer' => $row['Manufacturer']);
echo "<td><a href='list.php?" . http_build_query($data) . "'>" . $row['Manufacturer'] . "</a></td>";
答案 1 :(得分:1)
这根本没有任何意义:$row['mf_id'&&'Manufacturer']
。这不是您访问数组的两个元素的方式。您将两个字符串与&&
组合在一起,产生布尔true
,并尝试访问$row[true]
。你无法以这种方式访问数组。
如果您想同时使用这两个项目,则需要单独访问它们:
$row['mf_id'] . $row['Manufacturer']
如果你想构建一个包含这两个值的查询字符串,你应该使用http_build_query来处理数据的URL编码:
$query = http_build_query(array('mf_id' => $row['mf_id'], 'manufacturer' => $row['Manufacturer']));
echo '<td><a href="list.php?' . $query . '">' . $row['Manufacturer'] . '</a></td>';
请注意,如果您实际上只是选择了所需的字段,则不必在http_build_query
的参数中明确指定它们。如果您的$row
已只包含mf_id
和manufacturer
,则使用
$query = http_build_query($row);
答案 2 :(得分:0)
您只是将mf_id传递到页面中,而您没有通过制造商。
编辑(因为您已更改代码)
变化:
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><a href=\"list.php?mf_id&&Manufacturer=" . $row['mf_id'&&'Manufacturer'] . "\">" . $row['Manufacturer'] . "</a></td>";
echo "</tr>";
}
要:
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><a href=\"list.php?mf_id=".$row['mf_id']."&Manufacturer=" . $row['Manufacturer'] . "\">" . $row['Manufacturer'] . "</a></td>";
echo "</tr>";
}