IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Fonction recherche bizarre.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bustaja
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2007
    Messages : 109
    Par défaut Fonction recherche bizarre.
    Bonjour à tous.

    J'ai fait une fonction de recherche sur une base de données. Mais dès qu'il y a un accent dans la recherche, la fonction ne marche plus...

    Ma base est en latin1_general_ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
      function traitement_espace($adresse)
      {
      for($piece = strtok($adresse, " ");
          $piece != "";
          $piece = strtok(" "))
      {
        $tab=$tab.'%'.$piece;
      }
      $tab=$tab.'%';
      return $tab;
      }
     
      $var_recherche2=traitement_espace($var_recherche);
     
    $sql = mysql_query('SELECT * FROM video, categorie WHERE video.vid_cat= categorie.cat_num AND vid_nom LIKE CONVERT(_utf8 \''.$var_recherche2.'\' USING latin1) COLLATE latin1_general_ci LIMIT 0, 30');
     
    while ($donnees = mysql_fetch_array($sql, MYSQL_ASSOC))
     
    [blablah affichage du tableau]
    D'abord je fais une fonction pour transformer ma chaine. ("je suis la" en "%je%suis%la%") puis, je fais ma requête et ma boucle avec mes résultats...

    Quelqu'un aurait-il une idée ?

    Merci

  2. #2
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = mysql_query("SELECT * FROM `video`, `categorie` WHERE `video`.`vid_cat`= `categorie`.`cat_num` AND `vid_nom` LIKE '".$var_recherche2."' LIMIT 0, 30");
    comme ça ??

  3. #3
    Membre confirmé Avatar de bustaja
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2007
    Messages : 109
    Par défaut
    Citation Envoyé par max44410
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = mysql_query("SELECT * FROM `video`, `categorie` WHERE `video`.`vid_cat`= `categorie`.`cat_num` AND `vid_nom` LIKE '".$var_recherche2."' LIMIT 0, 30");
    comme ça ??
    Viens aussi de tester c'est pareil...

    Sinon apparemment, le soucis se situe entre la requête et la variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $var_recherche2=traitement_espace($var_recherche);
    echo $var_recherche2;
     
    $sql = mysql_query('SELECT * FROM video, categorie WHERE video.vid_cat= categorie.cat_num AND vid_nom LIKE \'%'.$var_recherche2.'\' LIMIT 0, 30');
    En fait, quand j'met un caractère accentué dans ma requête, pas de soucis.

    Mon affichage de variable $var_recherche2 me donne le caractère accentué !

    Et si j'affiche ma requête, j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM video, categorie WHERE video.vid_cat= categorie.cat_num AND vid_nom LIKE '%é%' LIMIT 0, 30
    Qui fonctionne parfaite avec PhpMyAdmin...


  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut
    c'est pas le mysql query du serveur qui fait une transformation pour eviter certain caractere?

    Par exemple, conversion en code html? ce qui pourrait expliquer qu'en l'affichant, tu ne vois pas de soucis

    ton serveur a peut etre pas le meme systeme de securité que php my admin?

  5. #5
    Membre confirmé Avatar de bustaja
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2007
    Messages : 109
    Par défaut
    Citation Envoyé par _Moa_
    ton serveur a peut etre pas le meme systeme de securité que php my admin?
    Possible faudra que j'vérifie mes versions mais en tous cas, toutes ces merdes de conversion à cause des caractères spéciaux, ça craint... Faudra que j'tente de revoir tout ça :/

    gni

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut
    et ouep ça lourde ce genre de truc, mais faut passer par là pour avoir une certaine "sécurité"


    Je me souviens d'avoir galéré comme un pauvre sur le meme genre de soucis, parce que sur ma machine, les caracteres prenaient une transformation, et pas sur le serveur apres...

    Par contre, j'ai pas le bowdel sous la main :/ et je sais plus quelle est cette fonction...


    et finallement, pour resoudre, j'avais du refaire plusieurs de mes scripts pour verifier l'activation ou non de la fonction, et agir en conséquence en faisant ma propre fonction de transformation...

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/11/2005, 18h50
  2. [fonction] recherche de methode inutilisée
    Par frouge dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h37
  3. fonction Recherche
    Par pingoui dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 31/08/2004, 17h44
  4. [appel de fonction]Erreur bizarre
    Par DEC dans le forum ASP
    Réponses: 4
    Dernier message: 10/08/2004, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo