【发布时间】:2015-01-06 15:29:33
【问题描述】:
有一个数据库,我在其中存储了产品详细信息。 (id、名称、价格、类别、单位)
首先,我在名为“input.php”的 php 文件中列出了可供选择的产品。它就像一个魅力。
// SQL query
$query = "SELECT *
FROM products
ORDER BY p_name
ASC";
$result = mysql_query($query);
if($result === FALSE) {die(mysql_error());}?>
<table width="100%">
<tr>
<td></td>
<td width="800px"><h1>Product name</h1></td>
<td width="400px"><h1>Product price</h1></td>
<td>Category</td>
</tr>
</table>
<?
while ($row = mysql_fetch_assoc($result)) {?>
<table>
<tr>
<td><input type="checkbox" name="pro_name[]" value="<?=$row['p_name']?>"></td>
<td width="800px" align="left"><b><?=$row['p_name']?></b></td>
<td width="400px" align="left"><?=$row['p_price']?></td>
<td align="center"><?=$row['p_cat']?></td>
</tr>
</table>
<?}
我将数据提交到“index.php”并处理其中的变量。
if($_SERVER['REQUEST_METHOD']== "POST"){
// Variables
$c_name = $_POST['c_name']; // ['company name']
$c_consumption = $_POST['c_consumption']; // ['company consumptions']
$f_price = $_POST['f_price']; // ['fuel price']
$o_sales = $_POST['o_sales']; // ['sales']
$pro_name = $_POST['pro_name']; // ['products names']
$pro_id = $_POST['pro_id']; // ['product id']
$pro_price = $_POST['pro_price']; // ['product price']
我卡住的第三步...我需要列出挑选的产品详细信息。
我的想法是从数据库中选择详细信息,并搜索我之前选择的产品名称。
我用 IN、LIKE、implode.... 等进行了尝试,但没有成功。 :(
// SQL query
$query = "SELECT *
FROM products
WHERE p_name IN (".implode(',', $pro_name).")
ORDER BY p_name
ASC";
$result = mysql_query($query);
if($result === FALSE) {die(mysql_error());}
while ($row = mysql_fetch_array($result)) {?>
<table>
<tr>
<td width="800px" align="left"><b><?=$row['p_name']?></b></td>
<td width="400px" align="left"><?=$row['p_price']?></td>
<td align="center"><?=$row['p_cat']?></td>
</tr>
</table>
<?}
}
编辑:
var_dump($pro_name); result
array(3) { [0]=> string(14) "12 V szivattyú" [1]=> string(17) "120 l/p szivattyú" [2]=> string(28) "24 hónapra bővített garancia" }
【问题讨论】:
-
你得到什么错误信息或输出?
-
如果
p_name是 VARCHAR 则IN语句应该有':IN ('p_name_1', 'p_name_2') -
您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“V szivattyú,120 l/p szivattyú,24 hónapra bővített garancia) 附近使用正确的语法
标签: php mysql arrays select implode