2016-06-19 17 views
2

私は、複数の検索フィールドにPHPコードを持っていますが、私はいけない私はlaravelでこの機能を使用することができますどのように知っているlaravel 5つの検索複数のフィールド

MySQLの構文はありませんそれ。

if(isset($_GET['submit'])) { 
// define the list of fields 
     if(isset($_GET['debit']) && !empty($_GET['debit'])) { 

    $_GET['valeur'] = - $_GET['debit']; 
    } 
    else 
    { 
    if(isset($_GET['credit']) && !empty($_GET['credit'])) 
    { 
     $_GET['valeur'] = $_GET['credit']; 
    } 
    } 
    $fields = array('id_type', 'date_operation', 'date_valeur', 'numero','tiers','description','valeur'); 
    $conditions = array(); 


// builds the query 
$query = "SELECT * FROM ecritures WHERE id_compte ='" . $iduser . "' "; 


// loop through the defined fields 
foreach($fields as $field){ 
    // if the field is set and not empty 
    if(isset($_GET[$field]) && !empty($_GET[$field])) { 
     // create a new condition while escaping the value inputed by the user (SQL Injection) 
     $conditions[] = "$field LIKE '%" . mysqli_real_escape_string($co, $_GET[$field]) . "%'"; 
     } 
    } 


// if there are conditions defined 
if(count($conditions) > 0) { 
    // append the conditions 
    $query .= " AND " . implode (' AND ', $conditions); // you can change to 'OR', but I suggest to apply the filters cumulative 
}} 
+0

こんにちは、受け入れられない理由は何ですか? – Webinan

+0

laravelでより良いフィルタを作る方法についての記事を書きました。http://devma.net/blog/filters-on-laravel –

答えて

2

Laravelのクエリビルダーは、このようなクエリを、手動でコードを作成するよりも簡単にSQLクエリを作成するよりも簡単にします。

ので、このコードは、あなたのために働く必要があります:Laravelはあなたのための世話をするよう

$q = DB::table('ecritures ')->where('id_compte', $iduser); 


// loop through the defined fields 
foreach($fields as $field){ 
    // if the field is set and not empty 
    if(isset($_GET[$field]) && !empty($_GET[$field])) { 
     // create a new condition 
     $q = $q->where($field, 'LIKE', '%' . $_GET[$field] . '%'); 
    } 
} 

$result = $q->get(); 

foreach ($result as $row) { 
    echo $row->column_name; 
} 

は私もescape機能を省略しました。

+0

回答ありがとうございました –

+0

私はqの値をエコーし​​たいのです出来る ? –

+0

@MohamedBenhida私はそれを含めました、あなたはオブジェクトのプロパティとして任意の列にアクセスすることができます。 – Webinan

関連する問題