2017-01-09 7 views
3

Ich folgte Joomla doc über, wie man Daten von einer einzelnen Tabelle auswählt. Ich brauche 3 OR Bedingungen.Datensätze unter Bedingung auswählen - Joomla

$db = JFactory::getDbo(); 
$query = $db->getQuery(true); 
$query->select($db->quoteName(array('column1', 'column2', 'column3'))); 
$query->from($db->quoteName('#__table_example')); 

$query->where($db->quoteName('column1') . ' LIKE '. $db->quote('condition1')); 
OR where column2 == condition2 
... 

Wie, wo Aussage mit vielen OPs in meinem Beispiel machen? Ich habe keine Themen zur Syntaxkorrektheit gefunden.

Antwort

1

Sie müssen nur hinzufügen oder Bedingungen in der gleichen, wo Aussage:

$db = JFactory::getDbo(); 
$query = $db->getQuery(true); 
$query->select($db->quoteName(array('column1', 'column2', 'column3'))); 
$query->from($db->quoteName('#__table_example')); 

$query->where($db->quoteName('column1') . ' LIKE '. $db->quote('condition1') . ' OR ' . $db->quoteName('column2') . ' LIKE '. $db->quote('condition2') . ' OR ' . $db->quoteName('column3') . ' LIKE '. $db->quote('condition3')); 
1

ich eine allgemeine Antwort geben, die nicht nur OR sondern auch mehrere UND Probleme decken. Verwenden Sie WHERE Abfrage wie folgt: ex: Abfrage sollte ausgeführt werden, wenn eines von (cond1 oder cond2 oder cond3) wahr ist und eines von (cond4 oder cond5 ist true):

$query->where(((cond1)OR(cond2)OR(cond3)) AND ((cond4)OR(cond5))); 

So können Sie verwenden OR und UND wie Sie möchten, nur sicher sein, dass Sie () richtig verwenden, um Ihren Zustand zu definieren.

In Ihrem speziellen Fall, werden Sie Format wie folgt verwenden:

$query->where((var LIKE cond1) OR (cond2)); 

offensichtlich Ihre cond2 ist: column2 == condition2

Ich hoffe, dass es Verwirrung auflöst.

Verwandte Themen