在同一列中选择多个WHERE

时间:2017-05-07 14:13:13

标签: php mysql

我想从同一列中选择月份和年份。如何将列中的月份和年份分开?

<label>Bulan :</label>
<select name="month">
    <option value=""></option>
    <option value="1">Januari</option>
    <option value="2">Februari</option>
    <option value="3">Mac</option>
    <!-- ... -->
</select>

<label>Tahun :</label>
<select name="year">
    <option value=""></option>
    <option value="2017">2017</option>
    <option value="2016">2016</option>
</select>
<input type="submit" value="Hantar" >

<?php
if(isset($_POST['year']) && ($_POST['month']))
{
    $tarikh = mysql_real_escape_string($_POST['month']);
    $tarikh = mysql_real_escape_string($_POST['year']);

我正在运行此查询

$query ="SELECT * FROM pelanggan 
          WHERE (MONTH(tarikh) = '$tarikh') 
          and (YEAR(tarikh) = '$tarikh')";

为什么输出不显示?上述查询有什么问题?

3 个答案:

答案 0 :(得分:0)

在查询字符串中,您使用相同的月份和年份变量

中添加不同的变量名称
$tarikhMonth = mysql_real_escape_string($_POST['month']);
$tarikhYear = mysql_real_escape_string($_POST['year']);

$query ="SELECT * FROM pelanggan 
         WHERE (MONTH(tarikh) = '$tarikhMonth') 
         and (YEAR(tarikh) = '$tarikhYear')";

答案 1 :(得分:0)

您正在覆盖$ tarikh变量。将它们命名为$ month和$ year应该有效。

我会使用PDO而不是手动转义字符串。

答案 2 :(得分:0)

您需要为月份和年份指定不同的变量名称。试试这个

<label>Bulan :</label>&nbsp;<select name="month">
          <option value=""></option>
          <option value="1">Januari</option>
          <option value="2">Februari</option>
          <option value="3">Mac</option>...

        </select><label>Tahun :</label>&nbsp;<select name="year">
          <option value=""></option>
          <option value="2017">2017</option>
          <option value="2016">2016</option>
        </select><input type="submit" value="Hantar" ></td>


        <?php
        if(isset($_POST['year']) && ($_POST['month']))
        {
        $tarikh_month = mysql_real_escape_string($_POST['month']);
        $tarikh_year = mysql_real_escape_string($_POST['year']);


$query ="SELECT * FROM pelanggan 
          WHERE (MONTH(tarikh) = '$tarikh_month') 
          and (YEAR(tarikh) = '$tarikh_year')";