php - 根据下拉选择显示特定的 MySQL 行

标签 php mysql sql forms

我创建了一个包含下拉字段的表单

<select name="locationselect" id="locationselect" tabindex="7">
  <option value="Location1">Location 1</option>
  <option value="Location2">Location 2</option>
  <option value="Location3">Location 3</option>
  <option value="Location4">Location 4</option>
</select>

提交后,我想提取他们从下拉列表中选择的位置,并从我的 MySQL 数据库中打印特定行,以显示他们的地址。因此,如果他们选择位置 1,它将显示:

Company Name 
1234 ABC Street
New York, NY 12345

但是如果他们选择位置 2,则会显示:

Other Company
5678 XYZ Street 
San Francisco, CA 12345 

99 个不同地点等等。

这是我开始的内容,但我缺少一个定义数组 $fulladdress 的变量 - 我是 MySQL 新手,所以我什至不确定在 Select 之后要放什么?是否有行号或者我可以输入第一列的内容或什么类型的ID?

switch($_GET['locationselect']){

case 'Location1':
   mysql_query("SELECT ____ FROM locations");
   break;
case 'Location2':
   mysql_query("SELECT ____ FROM locations");
   break;
  }
  while($row = mysql_fetch_array($fulladdress))
  {
  echo ($row['PlaceName']." Office Building<br>".$row['Address']."<br>".$row['City'].", CA      
  ".$row['Zip']."<br><br>");
  }

任何有关如何解决此问题的帮助将不胜感激。我知道我的代码很困惑,但我希望你能明白我想要做什么。

谢谢!!

最佳答案

我不太确定是否使用 case 语句,您可以做的是参数化查询。所以它会是:

mysql_query("Select fulladdress from Location where location ='" . $location . "'");

使用下拉值,您可以将其传递到 $location 变量中。 但是,如果您在搜索框中显示如此多的值。您可能想查看类似 jQuery Autocomplete 的内容。当然是在你转义输入之后。

编辑:

上面的方法不太安全,你应该使用mysqli。并使用类似准备好的语句:

$stmt = $dbConnection->prepare('SELECT * FROM locations WHERE name = ?');
$stmt->bind_param('s', $name);

有关更多信息,请查看 SQL Injection 上的这篇文章

关于php - 根据下拉选择显示特定的 MySQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24983884/

相关文章:

java - 通过 TCP 同时发送两个数据包时,其中一个数据包会丢失

MYSQL JOIN同表+COUNT判断排名

PHP MySQL curdate() 函数

mysql - 更新MySQL重复记录

iphone - 如何使用 UISegmentedControl 更改 tableview 中的数据源

php - MySql语句错误: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

php - 发布 Instagram "like"时出现 fatal error

javascript - 通过 $post 在 jquery 中发布隐藏的输入值

Mysql TableView 数据类型

sql - 在 SQL 数据库中存储 ID 列表的替代方法