Recherche dans une Base De Donnée SQL [Résolu/Fermé]

Signaler
Messages postés
1446
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
4 février 2020
-
 SOONA -
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

Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
Essais ça:
$piece = "cm"; 
$marque1 = 'COMPAQ'; 
$marque2 = 'HP'; 

$query = "SELECT * FROM ".$piece." 
WHERE marque LIKE '%".$marque1."'%" 
 or marque LIKE '%".$marque2."'%";  
Messages postés
1446
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
4 février 2020
93
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
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
dans ce cas remplace le slash '/' par la virgule ',' et essais ceci:
 where marque in(".$marque2.");
Messages postés
1446
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
4 février 2020
93
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 ?
Messages postés
1446
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
4 février 2020
93
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
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
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." ');  
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
modifiez cette ligne aussi
WHERE marque in( ".$marque." ); 
Messages postés
1446
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
4 février 2020
93
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