Recherche dans une Base De Donnée SQL

Résolu
Bonjour à tous,

Je souhaite effectuer une recherche dans une base de donnée :

La variable marque contient deux marques, HP et Compaq.

La colonne marque contient soit HP soit COMPAQ.

Je souhaite que la requéte me trouve toutes les piéces qui soit de marque HP ou Compaq.

J'ai bien essayer d'utiliser la fonction LIKE mais je n'ai pas reussi a obtenir le résultat voulu. Surment je ne n'utilise pas de la bonne façon.

$piece = "cm";
$marque = 'HP/COMPAQ';

$query = "SELECT * FROM ".$piece."
WHERE marque LIKE '%".$marque2."'%";

Merci pour votre aide.
Cordialement
Exileur

4 réponses

  1. Essais ça:
    $piece = "cm"; 
    $marque1 = 'COMPAQ'; 
    $marque2 = 'HP'; 
    
    $query = "SELECT * FROM ".$piece." 
    WHERE marque LIKE '%".$marque1."'%" 
     or marque LIKE '%".$marque2."'%";  
    
    1. J'ai bien penssé à cette solution mais la variable marque est selectionner dans un formulaire.

      Elle peux donc avoir pour valeur Acer, Apple, MSI ou autre.

      J'ai penser à une recherche ou la collone contient au moins deux des caractéres de la variable mn'ai rien trouver de concluant.arque. Mais je
      1. dans ce cas remplace le slash '/' par la virgule ',' et essais ceci:
         where marque in(".$marque2.");
        
        1. j'ai inserrer la commande comme ceci dans le code

          WHERE marque in( ' ".$marque." ');

          Quand $marque vaut "HP,COMPAQ", aucune réponse,
          Quand $marque vaut " HP','COMPAQ " j'ai un resultat avec la magnifique erreur

          "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\gestion\form\form_model.php on line 21"

          $query = "SELECT DISTINCT model FROM ".$piece." WHERE marque='".$marque."'";

          $result = mysql_query($query);
          $Nombre = mysql_num_rows($result); //(ligne 21)

          Dois-je echaper la variable avant de la réutiliser ?
        2. Pour mettre dans le context il s'agit d'un site qui gére le stock de piéce détaché. Donc une fois la sélection de la marque faite, on cherche les models disponible pour la marque
        3. Je ne sais pas si vous l'avez déjà fait mais Puisque les marques sont de type String vous devriez les mettre entre la cote. si je prends votre code je peux le modifier comme ceci:
          
          $piece = "cm";
          $marque = " 'HP','COMPAQ' "; // Modifié
          
          $query = "SELECT * FROM ".$piece."
          WHERE marque in( ' ".$marque." ');  
          
        4. modifiez cette ligne aussi
          WHERE marque in( ".$marque." ); 
          
        5. Oui effectivement, je viens de m'appercevoir que l'erreur viens de l'ancienne commande qui n'avais pas était modifier.

          Merci beaucoup pour ton aide qui m'a été bien préçieuse.

          Cordialement
          Exileur