Recherche dans une Base De Donnée SQL

Résolu/Fermé
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 20 oct. 2011 à 11:35
 SOONA - 30 oct. 2012 à 09:28
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

sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
Modifié par sakoba2010 le 20/10/2011 à 11:46
Essais ça:
$piece = "cm"; 
$marque1 = 'COMPAQ'; 
$marque2 = 'HP'; 

$query = "SELECT * FROM ".$piece." 
WHERE marque LIKE '%".$marque1."'%" 
 or marque LIKE '%".$marque2."'%";  
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
20 oct. 2011 à 12:01
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
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
20 oct. 2011 à 12:12
dans ce cas remplace le slash '/' par la virgule ',' et essais ceci:
 where marque in(".$marque2.");
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
20 oct. 2011 à 12:51
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 ?
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
20 oct. 2011 à 12:53
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
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
20 oct. 2011 à 13:24
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." ');  
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
20 oct. 2011 à 13:26
modifiez cette ligne aussi
WHERE marque in( ".$marque." ); 
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
20 oct. 2011 à 13:35
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
0
M666
0