2016-10-07 12 views
0

ドロップダウン選択値に基づいてSQLクエリを作成したいと思います。ドロップダウン選択に基づくSQLクエリ

たとえば、管理者が今日を選択した場合、SQLクエリは今日のレコードのみを取得する必要があります。あなたはCONCATを使用する必要があります

HTML

<select name="report_date"> 
    <option value="Today">Today</option> 
    <option value="Yesterday">Yesterday</option> 
    <option value="Last7Days">Last 7 Days</option> 
    <option value="This Week">This Week</option> 
    <option value="LastWeek">Last Week</option> 
    <option value="ThisMonth">This Month</option> 
    <option value="LastMonth">Last Month</option> 
    <option value="ThisYear">This Year</option> 
    <option value="LastYear">Last Year</option> 
    <option value="AllTime">All Time</option> 
</select> 

<input type="text" name="product_name"/> 

PHP

$fixedrange = $_GET['report_date']; 
$pname= $_GET['product_name']; 

if($fixedrange=="Today"){ 
    $today = date('Y-m-d'); 
    $fixeddate = 'OR o.`custom_date`='. $today; 
} 

SQLクエリ

SELECT * 
FROM order_items AS oi 
INNER JOIN orders o ON o.id=oi.`order_id` 
WHERE oi.`product_name` LIKE '%$pname%' $fixeddate 
    AND o.status = '1' 
ORDER BY o.custom_date DESC 

答えて

0
$sql = " SELECT * FROM order_items AS oi 
    INNER JOIN orders o ON o.id=oi.`order_id` 
    WHERE oi.`product_name` LIKE concat('%', $pname,'%') 
    $fixeddate 
    AND o.status = '1' 
    ORDER BY o.custom_date DESC ; "; 

やPHPの日付を使用しなくても、あなたはdate(o. CUSTOM_DATE ) = curdate()

if($fixedrange=="Today"){ 
    $today = date('Y-m-d'); 
    $fixeddate = 'OR date(o.`custom_date`) = curdate() ' ; 
} 

$sql = " SELECT * FROM order_items AS oi 
    INNER JOIN orders o ON o.id=oi.`order_id` 
    WHERE oi.`product_name` LIKE concat('%', $pname,'%') 
    $fixeddate 
    AND o.status = '1' 
    ORDER BY o.custom_date DESC ; "; 
+0

を使用することができます問題は、今日クリックすると、すべてのレコードが表示ことありますか? –

+0

これはカラムo.custom_dateのタイプですか? – scaisEdge

+0

'custom_date'は日付の列型です –

0
SELECT OrderId,DATE_ADD(date(OrderDate),INTERVAL + 30 DAY) AS OrderPayDate 
FROM Orders 

use +(plus) or - (minus) for adding future date or subtract for past date using DATE_ADD sql function 
+0

の問題はすべてのレコードが –

+0

を表示しているということです。ここで、column_date = DATE_ADD(日付( "column_date")、インターバル - 30日)およびcolumn_date <= DATE_ADD(date( "column_date")、INTERVAL - 30日);この1つは過去30日間ですreocrds –

+0

あなたは事前にすべてのクエリを書いてください –

関連する問題