SQL LIKE这个OR那个

时间:2015-10-07 12:49:30

标签: php mysql sql

我试图这样做: (我正在与codeignitor合作)

$conditions = $tri." LIKE'%".$prenomNom."%' OR LIKE'%".$nomPrenom."%'"; 

我也尝试过:

$conditions = ($tri." LIKE '%".$prenomNom."%' OR ".$tri." LIKE '%".$nomPrenom."%'"); 

但是OR不起作用......我的请求只返回$ tri,就像$ nameLastname一样。

当我回显$ nameLastname和$ LastnameName时,一切正常。

我的代码

  public function rechercheParAuteur($selection = "*", $recherche = "", $tri = "", $champs_order = "id", $direction_ordre = "ASC", $nombre_limite = NULL, $debut_limite = NULL){   
  //$conditions = "titre LIKE '%".$recherche."%'"; //création de la condition personnalisée
  $testrecherche = str_replace("'","\'", $recherche);
  $rechercheArray = explode(" ", $testrecherche);
  if (isset($rechercheArray[1])) 
  {
    $nomPrenom = $rechercheArray[0]." ".$rechercheArray[1];
    $prenomNom = $rechercheArray[1]." ".$rechercheArray[0]; 
    //$conditions = $tri." LIKE'%".$prenomNom."%' OR LIKE'%".$nomPrenom."%'"; 
    $conditions = ($tri." LIKE '%".$prenomNom."%' OR ".$tri." LIKE '%".$nomPrenom."%'"); 
    //echo $nomPrenom; OK
    //echo $prenomNom; OK
  }
  else
  {   
    $resultat = $rechercheArray[0];      
    $conditions = $tri." LIKE '%".$resultat."%'"; 
  }

  $retour= $this->db->select($selection)
      /*à partir de quelle table*/
      ->from($this->table)
      /*déterminer des conditions spécifiques*/
      ->where($conditions)
      /*déterminer un ordre précis*/
      ->order_by($champs_order, $direction_ordre)
      /*déterminer une limite*/
      ->limit($nombre_limite, $debut_limite)
      /*obtenir les résultats (va de pair avec result()*/
      ->get()
      /*retourner les résultats sous forme de tableau*/
      ->result_array();

      return $retour;

1 个答案:

答案 0 :(得分:1)

你可能想把条件放在perens。

(Floating a, Floating c, Foo a, Bar [b], Baz c) => a -> [b] -> (a, c)