2017-05-07 102 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')";