sql >> Database teknologi >  >> RDS >> Mysql

Dynamisk oprettet WHERE-klausul PHP/MySQL

I stedet for at oprette en where-streng, ville jeg først oprette et array med where-dele.

$whereParts = array();
foreach($aColumns as $i => $column)
{
    <logic goes here>
    $whereParts[] = 'genre_id IN (1,3,5,6)'; // sample :)
}

$where = 'WHERE ' . implode(' OR ', $whereParts); // note the spaces around OR

Så er det nemt at erstatte ' OR ' med ' AND '

Det er nemt at tillade brugere at vælge mellem OG og ELLER for alle dele, men ikke hvis du vil gøre det for hvert enkelt element. Det er også et logisk problem. Når brugeren angiver a OR b AND c , vil han have (a OR b) AND c eller a OR (b AND c) ?




  1. Hent data fra mysql ved hjælp af php

  2. Codeigniter Cart - lagring af data i database - hvordan griber man det an?

  3. Peewee MySQL-server er gået væk

  4. mysql - kan ikke angive måltabel for opdatering i fra klausul