2014-07-27 5 views
0

Désolé si je pose une question déjà répondu, mais je n'ai pas pu trouver ma configuration spécifique.Php recherche base de données mysql

J'ai un fichier php appelé functions.php, où je stocke toutes mes fonctions et où je prépare ma base de données. Un petit exemple serait la suivante:

function getUsers() 
{ 
     global $mysqli,$db_table_prefix; 
     $stmt = $mysqli->prepare("SELECT 
       id, 
       user_name, 
       FROM db_users"); 
     $stmt->execute(); 
     $stmt->bind_result($id, $user); 
     while ($stmt->fetch()){ 
       $row[] = array('id' => $id, 'user_name' => $user); 
     } 
     $stmt->close(); 
     return ($row); 
} 

Je veux faire une fonction de recherche, avec un formulaire où je peux rechercher avec des valeurs, des valeurs OPTION i.e. comme: id, user_name. En ayant functions.php je suis déjà en train d'établir la connexion à la base de données mysql, Comment puis-je rechercher la base de données avec mon '%searchrequest%' avec un search.php?

Ou suggérez-vous une autre solution?

+0

Vous concaténez id & nom_utilisateur et définissez la valeur de l'option.post le formulaire et créez la requête selon vos besoins. –

Répondre

0

Transmettez simplement ces valeurs de recherche dans votre fonction actuelle. Si rien n'est passé, il ira chercher toutes les données. Si une valeur est passée, elle sera filtrée en fonction de celle-ci.

function getUsers($id="",$user_name="") 
{ 
     global $mysqli,$db_table_prefix; 

     $query = "SELECT 
       id, 
       user_name, 
       FROM db_users WHERE 1 = 1 "; 
     if(trim($id)) 
      $query .= " AND id = '".$id."'"; 

     if(trim($user_name)) 
      $query .= " AND user_name = '".$user_name."'"; 


     $stmt = $mysqli->prepare($query); 


     $stmt->execute(); 
     $stmt->bind_result($id, $user); 
     while ($stmt->fetch()){ 
       $row[] = array('id' => $id, 'user_name' => $user); 
     } 
     $stmt->close(); 
     return ($row); 
} 
+0

Ne vous contentez pas de remplacer une requête par une autre plutôt que de la concaténer? – MikeWu

+0

semble bon maintenant. – MikeWu

+0

@MikeWu - bien souligné! Je déteste quand je me trompe de tels endroits! – raidenace