2017-05-03 1 views
2

mysqliクエリのすべてのレコードを、3日以上経過したtask_start_dateに置きたい。task_start_dateが3日以上経過したタスクの詳細を取得するにはどうすればよいですか?

これは私がmysqliのクエリを使用してみましたが何である:

$sql_task = "SELECT * FROM task where task_assignee='" . $user_result['id']."' WHERE task_start_date > DATE_SUB(NOW(), INTERVAL 5 DAY)"; 
$result_task_dropdown = mysqli_query($conn, $sql_task);  
echo mysqli_error($conn); 
$rows_task_dropdown=mysqli_num_rows($result_task_dropdown);    
$task_dr_result = mysqli_fetch_array($rows_task_dropdown,MYSQLI_ASSOC); 

これは私のタスクテーブル構造

CREATE TABLE `task` (
    `task_id` int(11) NOT NULL, 
    `task_name` varchar(255) NOT NULL, 
    `task_description` text NOT NULL, 
    `task_assignee` varchar(255) NOT NULL, 
    `task_start_date` date NOT NULL, 
    `task_due_date` date NOT NULL, 
    `task_priority` varchar(50) NOT NULL, 
    `task_status` varchar(40) NOT NULL, 
    `task_remarks` text NOT NULL, 
    `location` varchar(200) NOT NULL, 
    `delete_status` tinyint(1) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+0

'$ user_result ['id']'はユーザー入力から来ますか?その場合、このコードにはSQLインジェクションの脆弱性が存在します。これを解決するためのパラメータバインディングを調べてください。幸いなことに、MySQLiドライバはそれをサポートしています。 – halfer

答えて

3
$sql_task = "SELECT * FROM task where task_assignee='" . $user_result['id']."' and task_start_date < DATE_SUB(NOW(), INTERVAL 3 DAY)"; 

であるが、これはあなたを助けることを願っています。

関連する問題