Problème en sql

Fermé
Mickael86480 - 1 juin 2010 à 12:14
 Mickael86480 - 7 juin 2010 à 11:38
Bonjour, je dois faire la partie "recherche de commerce"du site de la ville, pour cela j'ai déjà créer un formulaire ainsi qu'un base de données. Je voudrais savoir s'il existe une fonction qui rend insensible à la casse et une autre qui ne prend qu'une partie de ce qui est entré. Je m'explique, dans ma base de données j'ai, par exemple, un commerce qui s'appel "Chez Toto" et je dois afficher les informations de ce commerce même si l'utilisateur du site entre "TOTO" ou "chez" "C" ou "c" et je ne sais pas comment faire.

Pourriez-vous me données les fonctions qui feraient cela ainsi que de m'expliquer leur fonctionnement??

merci d'avance
A voir également:

10 réponses

Ce serait plutôt

SELECT id, nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com LIKE '%$NomCommerce%'

like est un opérateur

[Modération : signe = retiré à la demande du posteur]
1
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 juin 2010 à 15:52
Bonjour,

Il ne faut pas mettre de = après LIKE.

Xavier
1
fiu, the active one
2 juin 2010 à 18:08
Bien vu!
... les joies du copier-coller :-(

je m'en vais de ce pas demander la correction de cette horreur
0
Mickael86480
2 juin 2010 à 16:06
Merci Xavier, je n'ai plus l'erreur mais çà ne fonctionne toujours pas. A l'aide!!!
1
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
1 juin 2010 à 14:58
Bonjour Mickael86480,

Le type de requête que vous souhaitez créer recourt couramment aux métacaractères. Tels que : ! ? *.
Voir les adresses ci-dessous pour vous éclairer ....

https://docs.microsoft.com/fr-fr/previous-versions/sql/sql-server-2005/ms180055(v=sql.90)?redirectedfrom=MSDN UPPER
https://docs.microsoft.com/fr-fr/sql/t-sql/functions/lower-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15 LOWER
https://fr.wikipedia.org/wiki/M%C3%A9tacaract%C3%A8re METACARACTERE


Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci mais je ne sais pas où je dois utiliser les métacaractère, dans les requêtes,..., si qlq 1 sait, je suis preneur

voici mon code, merci de m'indiquer où le mettre:

if(isset($_POST['rec']) && $ActiviteCommerce == "" && $NomRue == "")
{
$NomCommerce = $_POST['nom'];

$RequeteAffichage = "SELECT id, nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com = '$NomCommerce'
";

$RechercherCommerce = mysql_query($RequeteAffichage) or die(mysql_error());

if (mysql_num_rows($RechercherCommerce) >= 1)
{
while ($Donnees = mysql_fetch_array($RechercherCommerce))
{
echo ("
<div class = 'pps'
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >

<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>

<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br><br>
<a href = zoom_cv.php> Localisation dans la ville </a><br><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br></div><br>
");
}
}
else if ($NomCommerce == "" && $ActiviteCommerce == "" && $NomRue == "")
echo ("");
else
echo("<br><center>Le commerce <b>".$NomCommerce."</b> ne fait pas parti de la base de données</center><br>");
}

merci d'avance
0
Salut

la fonction standard pour convertir une chaine en majuscules est UPPER(...)
le joker standard à utiliser avec l'opérateur LIKE est %
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
2 juin 2010 à 12:14
Je n'y arrive pas, voici la requête que j'ai écrit, pourriez-vous me donner une solution

$RequeteAffichage = "SELECT id, nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com = '$NomCommerce'
LIKE nom_com = '%$NomCommerce%'
";

merci d'avance
0
Merci fiu
voici mon code:

if(isset($_POST['rec']) && $ActiviteCommerce == "" && $NomRue == "")
{
$NomCommerce = $_POST['nom'];

$RequeteAffichage = "SELECT id, nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com
LIKE = '%$NomCommerce%'
";

$RechercherCommerce = mysql_query($RequeteAffichage) or die(mysql_error());

if ($NombreTrouve = mysql_num_rows($RechercherCommerce) >= 1)
{
while ($Donnees = mysql_fetch_array($RechercherCommerce))
{
if (mysql_num_rows($RechercherCommerce) == 1) {

if ($NombreTrouve == 1)
echo "<br><center><span class='id '><span class='red b'>$NombreTrouve </span> résultat trouvé pour le commerce cherché.</center><br>";

else if ($NombreTrouve > 1)
echo "<br><center><span class='id '><span class='red b'>$NombreTrouve </span> résultats trouvés pour les commerces cherchés.</center><br>";

echo ("

<b> Le commerce demandé : </b> <br><br>

<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >
<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br><br>
<center><a href = zoom_cv.php> Localisation dans la ville </a></center><br><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br><br></div>
");
}
else if (mysql_num_rows($RechercherCommerce) > 1) {
echo ("

<b> Les commerces demandés : </b> <br><br>

<div class=' pps '>
<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >

<span id= fr class=gris>ID<sup> ".$Donnees['id']."</sup></span>
<b>Nom du commerce : </b>".$Donnees['nom_com']."<br>
<b>Adresse : </b>".$Donnees['adresse']."<br>
<b>Activité : </b>".$Donnees['activite']."<br>
<b>Téléphone : </b>".$Donnees['tel']."<br>
<b>Email : </b>".$Donnees['mail']."<br>
<b>Site internet : </b><a href=".$Donnees['site']."target=_blank>".$Donnees['site']."</a><br><br>
<center><a href = zoom_cv.php> Localisation dans la ville </a></center><br><br>
<b>Horaires d'ouverture : </b>".$Donnees['horaire']."<br><br></div>
");
}
}
}
}
else if ($NomCommerce == "" && $ActiviteCommerce == "" && $NomRue == "")
echo ("");
else
echo("<br><center>Le commerce <b>".$NomCommerce."</b> ne fait pas parti de la base de données</center><br>");

et j'ai comme erreur:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '%Le %'' at line 4

(Vous avez une erreur dans votre syntaxe de SQL; vérifiez le manuel qui correspond à votre version de serveur MySQL pour la syntaxe juste pour utiliser près au % %Le "à la ligne 4)

Est-ce que quelqu'un peut m'aider svp

merci
0
NIKEL, c'est bon çà marche, cependant çà tient compte de la cassure, comment faire pour ne plus en tenir compte??
0
Mickael86480
7 juin 2010 à 11:38
problème résolu merci
0