Application iOS, boîte de search et database SQL

J'ai une database d'hébergement SQL avec une table décrite comme "Description". Maintenant, la database parle avec mon application tout à fait bien, mais je semble avoir un problème concernant plusieurs mots keys dans une search. En ce moment la search ne finda que le premier mot tapé dans la boîte de search à l'intérieur de la table 'Description' dans ma database. Alors dites si mon user tape "Dragon Tattoo" via la boîte de search dans l'application, il affichera tout avec "Dragon" seulement .. En conclusion, quelle est la meilleure méthode pour avoir ma boîte de search list des mots keys avec des mots multiples avec des espaces pour un match exact.

Voici mon côté server PHP pour la fonction de search:

function _search($text){ $dbObj=$this->CONN; $query="SELECT * FROM tatoo_user_info where description LIKE '%$text%' OR name LIKE '%$text%' ORDER BY create_date DESC"; $stmt=$dbObj->prepare($query); $res=$stmt->execute(); $rows=$stmt->fetchAll(PDO::FETCH_ASSOC); $resultant=array(); foreach($rows as $values){ $array=array(); $array=$values; $query1="SELECT * FROM images where tui_id=:id"; $stmt1=$dbObj->prepare($query1); $stmt1->bindParam(':id',$values['id']); $res=$stmt1->execute(); $row=$stmt1->fetchAll(PDO::FETCH_ASSOC); $arr_image=array(); foreach($row as $images){ $arr_image[]=$images['name']; } $resultant[]=array_merge($array,array("images"=>$arr_image)); } //print_r($resultant);die; if(count($resultant)>=1){ $result_a=array("status"=>"SUCCESS","message"=>"Successfully Fetched","data"=>$resultant); echo json_encode($result_a); } else{ $result_a=array("status"=>"FAILURE","message"=>"Fail to find"); echo json_encode($result_a); } } 

Je ne suis pas sûr de la performance pour celui-ci mais vous pouvez essayer avec plusieurs requêtes:

 $str = "Dragon Tattoo and much more"; $arr_words = explode(" ", $str); foreach($arr_words as $word) { $word = sortingm($word); $sql="SELECT * FROM tatoo_user_info where description LIKE '%$word%' OR name LIKE '%$word%' ORDER BY create_date DESC"; } 

ou vous pouvez créer une longue requête:

 foreach($arr_words as $word){ $sql .= " OR name LIKE '%$word%' and description LIKE '%$word%'... "; }