内部语法之间的语法,如php(laravel)

时间:2015-07-29 04:28:37

标签: php database laravel

我想查询以获取开始日期和结束日期之间, 和start_date& end_date是来自用户的输入,因此我使用类似'%'。

的语法

这是我的代码,但没有工作

    public function getData()
{
    $inputname = Input::get('searchname');
    $startdate = Input::get('tglmulai');
    $enddate   = Input::get('tglsiap');

    $name = DB::table('tr_visit')
        ->join('tm_child','tr_visit.Child_ID','=','tm_child.Child_ID')
        ->select('tm_child.Child_Name','Bmi_Score')
        ->where('tm_child.Child_Name', 'LIKE', '%'.$inputname.'%')
        ->whereBetween('Visit_Date', 'LIKE', '%'.$startdate.'%' and 'LIKE', '%'.$enddate.'%')
        ->get();

    return view('Laporan.Kehadiran.kehadiranview', compact('name'));

}

1 个答案:

答案 0 :(得分:2)

请始终使用您想要的方法检查文档中的代码示例。

介于

之间

值得注意的是,whereBetween http://laravel.com/docs/4.2/queries#advanced-wheres

我自己没有使用过这种特殊的方法,但它看了一眼,所以我找到了doco并看到了这个:

$users = DB::table('users')
                ->whereBetween('votes', array(1, 100))->get();

我无法运行您的代码以确定,但似乎这可能对您有用:

public function getData()
{
    $inputname = Input::get('searchname');
    $startdate = Input::get('tglmulai');
    $enddate   = Input::get('tglsiap');

    $name = DB::table('tr_visit')
        ->join('tm_child','tr_visit.Child_ID','=','tm_child.Child_ID')
        ->select('tm_child.Child_Name','Bmi_Score')
        ->where('tm_child.Child_Name', 'LIKE', '%'.$inputname.'%')
        ->whereBetween('Visit_Date', array($startdate, $enddate))
        ->get();

    return view('Laporan.Kehadiran.kehadiranview', compact('name'));

}

这假设 - > select()和其他方法没有问题(取出whereBetween并在没有它的情况下确认其工作)。


通配符注意

你确实意识到'%'只是LIKE的通配符。

它与用户输入没有任何关系,只是为了匹配包含'%'之间的子字符串的任何值。

SQL通配符:http://www.w3schools.com/sql/sql_wildcards.asp


SQL之间的DateTime字符串

在这种情况下,您应该在html中使用datepicker或类似的东西,或者确保将输入(您没有指定格式)转换为sql的格式。

SQL Between文档显示以下示例:

SQL之间:http://www.w3schools.com/sql/sql_between.asp

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

因此,普通字符串应该可以工作,只需要确定它与数据库的格式相同。

这里有一些(使用直接sql):SQL query to select dates between two dates

如何在html(或客户端js)中实现这种格式是许多方法中的一种,但是有许多易于使用的javascript datepickers,即使不使用jquery或其他库。