PHP 不会从下拉列表发布到下一个文件

标签 php sql sql-server-2008

我正在使用 PHP 和 SQL 创建一个数据库来存储人们的当前位置。对于其中一个页面,我从 SQL 数据库加载所有可能的位置并将其放入下拉列表中。一旦用户提交了他们想要的位置,它就应该 POST 到下一个将进行查询的 PHP 文件,但它无法执行此操作。

<form action=droplocationget.php method="post">
<?php
$server = 'XXXXXXXX';
$connectionInfo = array("Database"=>"XXXXXXX");
$conn = sqlsrv_connect($server,$connectionInfo);

$Getloc = "SELECT DISTINCT Location FROM CurrentData";
$results = sqlsrv_query($conn, $Getloc);

  echo "<select id='location' name='location'>";
  while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
  {
echo "<option value=''>".$row['location']."</option>";
}
echo "</select>";
?>
<input type = "submit" value="Find">
</form>

接收码是:

?php
$server = 'XXXXXXXXX';
$connectionInfo = array("Database"=>"XXXXXXX");
$conn = sqlsrv_connect($server,$connectionInfo);

$NewLocation = "'". $_POST['Location']."'";



$describeQuery="select Username, Firstname, Lastname, Location from 
CurrentData WHERE Location = $NewLocation";
$results = sqlsrv_query($conn, $describeQuery);
while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
echo '<p>'.$row['Username'].' '.$row['Firstname'].' '.$row['Lastname'].' 
'.$row['Location'].'</p>';
}

sqlsrv_close($conn)
?>

最佳答案

这个 $NewLocation = "'"。 $_POST['位置']."'";

它应该是小写的“l”(L),因为 name='location' 区分大小写。

然后将其更改为简单的 $NewLocation = $_POST['location']; 然后在查询的 WHERE 子句中引用它的值。

即:

WHERE Location = '$NewLocation'";

如果它是一个字符串,则很可能是。

旁注:最好始终终止所有语句。

sqlsrv_close($conn);

并引用 Action

action="droplocationget.php"

PHP 的错误报告会有所帮助。


边注:

如果您想要一个值出现(以及在 HTML 源代码中),您可以使用 '".$value."' 作为示例。

echo "<option value='".$value."'>".$row['location']."</option>";

值可以是任何值,它甚至可以是用于 $row 的相同值或另一列的值。

如果您希望将该值设置(出现)在双引号中,则只需转义双引号:

echo "<option value=\"$value\">".$row['location']."</option>";

有些人更喜欢使用双引号。


请注意,列名和值(也)区分大小写。

如评论中所示,填充的行应使用大写字母 L

echo "<option value='".$row['Location']."'>".$row['Location']."</option>";

根据查询的列名 Location

关于PHP 不会从下拉列表发布到下一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876548/

相关文章:

sql - Rollback 和 RaiseError,哪个先?

php - 如何跟踪建立/关闭 mysql 连接的开销

php - 在 mySQL 中,如何在一个查询中获取和设置一个值?

mysql - 如何确保多个mysql查询成功执行

mysql - 将日期时间值分类到类次,其中类次在第二天结束

sql-server - 如何确保SQL Server中的一行不会被意外删除?

sql-server - 使用前一列更新表,不进行任何循环

php - 使用复选框值进行sql查询

php - 从评级网站上的 MySQL 数据库计算排名和奖励

mysql - 插入 MySQL 表或更新(如果存在)