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

Langage PHP Discussion :

Caractères codés dans une table


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut Caractères codés dans une table
    Bonjour,

    Même si le titre semble toucher au SQL, je pense qu'il s'agit d'un problème en PHP. Je vais essayer de vous expliquer.

    Dans une des tables de ma base de données, les champs qui contiennent des accents sont "codés", par exemple "Benoãit" au lieu de "Benoît".
    Or, je fais une recherche avec un script php sur cette table, voici le bout de code (c'est une première ébauche...):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $req1 = "select * from pgv_name where n_surname like '{$nom_search}'";
    $resultat1 = mysql_query($req1);
     
    echo "<table border='1'>";
    echo "<tr><td>Nom </td><td>Prenom </td></tr>";
    while($data1=mysql_fetch_array($resultat1))
    	{
    	echo "<tr>";
    	echo "<td>".$data1['n_surname']."</td>";
    	echo "<td>".$data1['n_givn']."</td>";
    	echo "</tr>";
    	}
    echo "</table>";
    C'est 'n_givn' qui contient quelque fois des accents.

    Je pense que c'est un problème de "Jeu de caractères pour MySQL" mais je me demandais s'il existe une fonction en PHP qui permet de résoudre ce problème ??

    J'ai oublié de dire que je ne peux pas changer la façon dont les données sont enregistrées dans la table car c'est fait par un script automatique.

    Merci et à bientôt,
    Alexis

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux essayer utf8_encode() ou utf8_decode() sur la donnée que tu veux envoyer ou que tu recois.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut
    re,

    J'ai essayé avec encode() :

    Benoãit devient Benoãit au lieu de Benoît

    J'ai aussi essayé avec decode() :

    Benoãit devient Benoãit au lieu de Benoît

    Dans les deux cas, ça ne marche mais peut-être que j'utilise mal les fonctions ???

    Voici que qu'est devenu mon code :
    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
     
    $req1 = "select * from pgv_name where n_surname like '{$nom_search}'";
    $resultat1 = mysql_query($req1);
     
    echo "<table border='1'>";
    echo "<tr><td>Nom </td><td>Prenom </td></tr>";
    while($data1=mysql_fetch_array($resultat1))
    	{
    	echo "<tr>";
    	echo "<td>".$data1['n_surname']."</td>";
            $ngiv = utf8_decode($data1['n_givn']);
    	echo "<td>".$ngiv."</td>";
    	echo "</tr>";
    	}
    echo "</table>";
    Merci et à bientôt,
    Alexis

Discussions similaires

  1. [MySQL] Transformation des caractères accentués dans une table
    Par betadev dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/01/2012, 11h58
  2. caractères spéciaux dans une table
    Par aix13 dans le forum Informix
    Réponses: 4
    Dernier message: 17/03/2009, 19h50
  3. Réponses: 11
    Dernier message: 11/11/2008, 18h38
  4. Champ codé dans une table
    Par basto dans le forum Sécurité
    Réponses: 3
    Dernier message: 12/11/2007, 10h58
  5. Réponses: 4
    Dernier message: 10/04/2007, 11h10

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