Php 基于已完成搜索的mysql数据库搜索
我有三个链选择框,它们从表中的同一行数据返回三个值:$drop、$drop_2和$drop_3,我想运行一个mysql查询,从表中该行的另一列返回一个值。我可以将值直接“回显”到页面,但我希望使用数组值,然后在“while”循环中从不同的表生成匹配结果。我有以下设置,如果有人能告诉我为什么它不工作,将不胜感激Php 基于已完成搜索的mysql数据库搜索,php,mysql,ajax,arrays,while-loop,Php,Mysql,Ajax,Arrays,While Loop,我有三个链选择框,它们从表中的同一行数据返回三个值:$drop、$drop_2和$drop_3,我想运行一个mysql查询,从表中该行的另一列返回一个值。我可以将值直接“回显”到页面,但我希望使用数组值,然后在“while”循环中从不同的表生成匹配结果。我有以下设置,如果有人能告诉我为什么它不工作,将不胜感激 <h1>Search Results</h1> <table> <tr> <th>Name</th> <th
<h1>Search Results</h1>
<table>
<tr>
<th>Name</th>
<th>Number</th>
<th>Description</th>
</tr>
<?php
$search_results = mysql_query("SELECT id_sensor FROM vehicles_new WHERE make='$drop' AND model='$drop_2' AND year='$drop_3'");
while($result = mysql_fetch_array($search_results)){
echo $result['id_sensor']; //This is displaying the value I need to use in the next query
?>
<?php
$sql = mysql_query("SELECT * FROM products WHERE id='$result'");
while($row = mysql_fetch_assoc($sql)){
?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['part_id']; ?></td>
<td><?php echo $row['description']; ?></td>
</tr>
<?php
}
?>
<?php
}
?>
</table>
搜索结果
名称
数
描述
改变这个
$sql = mysql_query("SELECT * FROM products WHERE id='$result'");
对此
$sql = mysql_query("SELECT * FROM products WHERE id='" . $result['id_sensor'] . "'");
瓦迪姆是对的。也就是说,至少在查询中使用一个准备好的语句来帮助防止SQL注入是明智的。我还建议将PHP代码移动到单独的文件中,并通过函数或对象调用它!我的php/sql知识非常贫乏,几天前才开始使用它,您知道我可以从哪些好的资源中学习如何创建准备好的语句和函数吗?再次感谢你,乔