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

10 réponses

  1. 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
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

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

    Xavier
    1
    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
  3. Mickael86480
     
    Merci Xavier, je n'ai plus l'erreur mais çà ne fonctionne toujours pas. A l'aide!!!
    1
  4. Jean_Jacques Messages postés 1045 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. fiu
     
    Salut

    la fonction standard pour convertir une chaine en majuscules est UPPER(...)
    le joker standard à utiliser avec l'opérateur LIKE est %
    0
  8. Mickael86480 Messages postés 698 Statut Membre 41
     
    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
  9. 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
  10. Mickael86480
     
    NIKEL, c'est bon çà marche, cependant çà tient compte de la cassure, comment faire pour ne plus en tenir compte??
    0