使用HTML

时间:2016-01-23 12:02:21

标签: php html mysql

我的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>

请帮助我并提前感谢

1 个答案:

答案 0 :(得分:0)

  1. 为select标记添加name属性 <select name="proizvod" id="proizvod" selected="selected">

  2. $proizvod1添加单引号(注意:在'string'之后使用LIKE):
    $sql = 'SELECT id, proizvod, ime, cijena, slika FROM proizvodi WHERE proizvod LIKE \''.$proizvod1.'\' ORDER BY ID ASC';