2017-05-07 100 views
-1

我想从同一列中选择月份和年份。我如何从列中分离月份和年份?在同一列中选择多个WHERE

<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')"; 

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

+2

因为你覆盖了变量值,我相信你的数据库中没有2017年的日期。还要学会立即使用参数,而不是自己逃脱字符串。 –

回答

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')"; 
0

您将要覆盖$ tarikh变量添加不同的变量名。命名他们$月和$年应该工作。

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

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')";