我的php项目有问题,我必须使用用户提供的特定参数搜索我的数据库。
这是我的index.php,其中从数据库中打印出所有内容 enter image description here
在我的搜索页面上,我有表格,您必须选择产品类型("键盘,图形卡,主板....")并输入该产品类型的最大价格,然后页面返回符合的数据库中的内容 要求参数。
这是我现在的代码 HTML部分
<html>
<body>
<form name="search" action="" method="post">
<p>
Odaberite proizvod:
<select id="proizvod" selected="selected">
<option value="tipkovnica">Tipkovnica</option>
<option value="graficka">Graficka kartica</option>
<option value="maticna">Maticna ploca</option>
<option value="kuciste">Kuciste</option>
</select>
</p>
<p>
Cijena do:
<input type="text" name="cijena" value="">
</p>
<p>
<input type="submit" name="trazi" value="Trazi">
</p>
</form>
这就是我现在所拥有的 enter image description here
如果我点击提交,我会收到此错误
注意:第25行的D:\ Program Files(x86)\ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ projects \ RWA \ contentSearch.php中的未定义索引:proizvod
致命错误:在第32行的D:\ Program Files(x86)\ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ projects \ RWA \ contentSearch.php中的非对象上调用成员函数setFetchMode()
和php部分,我不知道如何将这些参数提供给数据库...
<?php
if (isset($_POST["trazi"]))
{
$proizvod1 = $_POST['proizvod'];
$cijenaDo = $_POST['cijena'];
//getting all from database
try
{
$sql = 'SELECT id, proizvod, ime, cijena, slika FROM proizvodi WHERE proizvod LIKE '.$proizvod1.' ORDER BY ID ASC';
$q = $conn->query($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
}
catch (PDOException $pe)
{
die("Could not connect to the database $dbname :" . $pe->getMessage());
}
//PRINTING OUT THE TALBE WITH CONTENT
?>
<table border="0"><tr>
<?php
$i=0;
$start = true;
while ($r = $q->fetch()):
if($i %2 == 0 && !$start)
{
echo '</tr><tr>';
}
?>
<td><a href="proizvod.php?id=<?php echo $r['id']; ?>"><img src="<?php echo $r['slika']; ?>" width="300"></a></td>
<td>
<div class="naziv"><h3><a href="proizvod.php?id=<?php echo $r['id']; ?>"><?php echo $r['ime']; ?></a></h3></div>
<div class="identifikator_modela">Proizvod: <?php echo $r['proizvod']; ?></div>
<div class="cijena">Cijena:<b> <?php echo $r['cijena'] . ' kn'; ?></b></div>
</td>
<?php $i++; $start = false; endwhile; ?>
</tr></table>
<?php } ?>
</body>
请帮助我并提前感谢
答案 0 :(得分:0)
为select标记添加name
属性
<select name="proizvod" id="proizvod" selected="selected">
为$proizvod1
添加单引号(注意:在'string'
之后使用LIKE
):
$sql = 'SELECT id, proizvod, ime, cijena, slika FROM proizvodi WHERE proizvod LIKE \''.$proizvod1.'\' ORDER BY ID ASC';