Problème en sql

Mickael86480 -  
 Mickael86480 -
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

fiu
 
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   Statut Membre Dernière intervention   1 011
 
Bonjour,

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

Xavier
1
fiu, the active one
 
Bien vu!
... les joies du copier-coller :-(

je m'en vais de ce pas demander la correction de cette horreur
0
Mickael86480
 
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   Statut Membre Dernière intervention   112
 
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
Mickael86480
 
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
fiu
 
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   Statut Membre Dernière intervention   35
 
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
Mickael86480
 
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
Mickael86480
 
NIKEL, c'est bon çà marche, cependant çà tient compte de la cassure, comment faire pour ne plus en tenir compte??
0
Mickael86480
 
problème résolu merci
0