我是一个完整的新手,这是我在其中一个论坛上发表的第一篇文章。所以,如果我没有正确解释自己或者不应该问这样的问题,那么请原谅我并尽量耐心等待我:)
基本上,我已经设置了一个mysql数据库,我可以从我的网站填充它。我创建了一个基本搜索选项,我想从下拉列表中选择一个选项,并且还可以输入关键字。我已经找到了关键词部分我对如何处理事情的下拉方面感到有点困惑。我已经在互联网上搜索了答案,但我不确定我是否使用了正确的术语,因此我发现很难解决这个问题。
之前我已经创建了一个基本的MYSQL数据库,之前它已经运行了,所以我只能假设问题出在自动填充的下拉列表中。
让我解释一下.....我有一个富有想象力的标题为“Search.php”的搜索页面,其中包含一个由下拉菜单和文本框组成的表单(不用担心文本框 - 工作正常) ,下拉框自动从我的MYSQL数据库中填充,当提交表单时,结果应该在另一个页面上显示,标题为“Results.php”。由于某种原因,下拉列表中的值似乎没有被传递到“结果”页面!
这是“搜索”页面下拉框。
<select name="Name" id="Name">
<option>Please select</option>
<?PHP
while($row = mysql_fetch_assoc($result))
{$dropdown .="\r\n<option value='{$row['Name']}'>{$row['Name']}</option>";}
echo $dropdown;
PHP?>
这一切似乎工作正常,它从我的MYSQL数据库自动填充,我很高兴它的工作。
这是“结果”页面。
<?php
mysql_connect('xxxxxxxxxxxx', 'username', 'password') or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$query = "SELECT * FROM Shirts WHERE Name = '$Name'" or die(mysql_error());
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result) > 0) {
while($row = mysql_fetch_assoc($result))
{
echo ($row['Name']);
echo "<br />";
}
}
Shirts =表名 Name =表中的列
由于某种原因,这只会返回我的数据库中的“空”字段,这使我相信“搜索”页面上的下拉框中的值不会传递到“结果”页面!!
答案 0 :(得分:1)
这是一个黑暗的镜头,因为上面没有你的代码片段会使这个更清楚......但是,看起来你实际上并没有检索到你的表单传递的值。这些值不会自动获得;你需要先使用它们才能使用它们。
由于我不知道您使用的数据传递方法,请尝试以下方法:
$Name = $_REQUEST['Name'];
并将其放在生成结果的php文件的顶部。
$_REQUEST
包含POST
和GET
两种方法的数据,因此根据您使用的方法,它应该有效。
但是,我真的希望这个网站不存在..它不仅使用已弃用的功能,而且容易受到注入攻击。
我建议您学习如何使用PDO
,而不是使用已弃用的mysql_*
函数。 PDO的一个重要功能是,如果您使用命名参数,它会自动转义查询。
答案 1 :(得分:1)
如果没有方法属性,如果在表单上指定了select
或get
之一的方法,那么您的html post
应该包含在包含对结果页面操作的表单中指定的默认值为get
,取决于您应分别在查询$_GET['Name']
或$_POST['Name']
中使用而不是$Name