如何在我的PHP中使用2个ComboBox值作为标准?

时间:2015-01-19 18:23:45

标签: php mysql combobox

每个人都过得愉快。 首先抱歉过去的问题。

如何使用两个组合框作为MySQL标准?

到目前为止,这是我的代码

在表单加载期间,数据库中的所有数据都将显示在表

<div class= "yesPrint">
    <?php
    $con = mysql_connect("localhost","root","");
    mysql_select_db("poi",$con);
    $sql = "select name,user_date,user_time,address from tblmarker";
    $mydata = mysql_query($sql,$con);
    ?>

    <font size="2" color="black">
        <div class="dataTables_wrapper form-inline" role="grid">
            <table border=1 class="table table-bordered table-hover dataTable" id='tbody' width="100%" height="100%">
                <tr>
                    <th style="text-align:center;background:#eaeaea;">Crime Name</th>
                    <th style="text-align:center;background:#eaeaea;">Date</th>
                    <th style="text-align:center;background:#eaeaea;">Time</th>
                    <th style="text-align:center;background:#eaeaea;">Address</th>
                </tr>
                <?php
                while ($record = mysql_fetch_array($mydata)){
                    echo "<tr>";
                    echo "<td style='padding-left:10px;'>" . $record['name'] . "</td>";
                    echo "<td style='padding-left:10px;'>" . $record['user_date'] . "</td>";
                    echo "<td style='padding-left:10px;'>" . $record['user_time'] . "</td>";
                    echo "<td style='padding-left:10px;'>" . $record['address'] . "</td>";
                    echo "</tr>";
                }
                ?>
            </table>
        </div>
    </font>
    <?php mysql_close($con); ?>         
</div>

以下是数据库中的数据示例

Crime Name            Date                  Time                 Address
Fire                January 1 2015         11:11                   1
Physical Injuries   March 1 2015           11:11                   3
Robbery             April 1 2015           11:11                  111
Carnapping          May 1 2015             11:11                   qq

如何从2015年1月的日期选择Fire

这是我的组合框

<select id="onmonth">
    <option>January</option>
    <option>February</option>
    <option>March</option>
    <option>April</option>
    <option>May</option>
    <option>June</option>
    <option>July</option>
    <option>August</option>
    <option>September</option>
    <option>October</option>
    <option>November</option>
    <option>December</option>
</select>
<select id="onyear">
    <option>2014</option>
    <option>2015</option>
    <option>2016</option>
    <option>2017</option>
    <option>2018</option>
    <option>2019</option>
    <option>2020</option>
    <option>2021</option>
    <option>2022</option>
    <option>2023</option>
    <option>2024</option>
    <option>2025</option>
    <option>2026</option>
    <option>2027</option>
    <option>2028</option>
    <option>2029</option>
    <option>2030</option>
</select>

任何帮助或想法?谢谢。

2 个答案:

答案 0 :(得分:0)

您可以从选择中获取数据$ _REQUEST [“onmonth”]和$ _REQUEST [“onyear”]。您可以为$ _POST或$ _GET更改$ _REQUEST,具体取决于您的表单,尽管$ _REQUEST适用于两者。

关于查询,您可以使用以下内容获取信息:

从tbl中选择*,其中date喜欢'“。$ _ REQUEST [”onmonth“]。”%'和date喜欢'%'。$ _ REQUEST [“onyear”]。“'< / p>

假设$ _REQUEST [“onyear”] ='2015'和$ _REQUEST [“onmonth”] ='1月',查询将如下所示:

从tbl中选择*,其中date喜欢'1月%',date喜欢'%2015'

这意味着:

date喜欢'1月%'=所有日期从1月开始 date喜欢'%2015'=所有以2015年结尾的日期

我没有对它进行测试,但这种方式应该有效。

<div class= "yesPrint">
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("poi",$con);
//Query using the FORM SELECT info
$sql = "select * from tbl where `date` like '".$_REQUEST["onmonth"]."%' and `date` like '%".$_REQUEST["onyear"]."'";
$mydata = mysql_query($sql,$con);
?>

<font size="2" color="black">
    <div class="dataTables_wrapper form-inline" role="grid">
        <table border=1 class="table table-bordered table-hover dataTable" id='tbody' width="100%" height="100%">
            <tr>
                <th style="text-align:center;background:#eaeaea;">Crime Name</th>
                <th style="text-align:center;background:#eaeaea;">Date</th>
                <th style="text-align:center;background:#eaeaea;">Time</th>
                <th style="text-align:center;background:#eaeaea;">Address</th>
            </tr>
            <?php
            while ($record = mysql_fetch_array($mydata)){
                echo "<tr>";
                echo "<td style='padding-left:10px;'>" . $record['name'] . "</td>";
                echo "<td style='padding-left:10px;'>" . $record['user_date'] . "</td>";
                echo "<td style='padding-left:10px;'>" . $record['user_time'] . "</td>";
                echo "<td style='padding-left:10px;'>" . $record['address'] . "</td>";
                echo "</tr>";
            }
            ?>
        </table>
    </div>
</font>
<?php mysql_close($con); ?>         

答案 1 :(得分:0)

(很抱歉在回答中说这个而不是评论,但我没有足够的声誉这样做)

我相信任何<option>都需要这样的值:

<option value="2015">2015</option>
<option value="2014">2014</option>
....

value所在的人$_REQUEST['onyear']。两个HTML标记之间的文本将是用户<select>中显示的文本。然后,您可以使用@Kenzou提到的这两个参数来执行SQL查询。
但是我强烈建议您使用PDO或MySqli访问数据库并使用SQL参数来避免SQL注入(这里有一些关于它的信息:http://www.w3schools.com/sql/sql_injection.asp)<而不是连接您的SQL查询。 / p>