Valeur avec caractères speciaux table sql utf8_encode

Résolu/Fermé
mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020 - Modifié par baladur13 le 20/12/2015 à 16:59
mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020 - 21 déc. 2015 à 23:04
Bonjour tout le monde,

Je suis en pleine galère depuis quelques jours. Je n'arrive pas à trouver une solution à mon problème et je ne comprends pas du tout qu'elles sont les causes.

je vous explique rapidement :

Dans ma base de données toute les données sont encode en UTF8, j'ai essayé depuis quelques jours de classer mes données et les afficher dans un tableau, jusqu'ici tout est ok, la connexion ce fait correctement et toutes les données sont classées comme je souhaitais. Le problème que j'ai rencontré c'était avec le statu qui contenaient des caractères spéciaux, il m'affiche les mots avec des <?> dans mon tableau.
Voici la requête
<?php 
mysqli_set_charset($connexion, "utf8");
$query2 = "SELECT * FROM prise_en_charge WHERE statu = 'Commande réceptionné'" ; // quand j'ai essayé statu = 'Commande réceptionné' les données ne s'affiche pas 
$show2 = mysqli_query($connexion, $query2) or die ("Error");
?>


Pour afficher les données :
<?php
while ($row2 = mysqli_fetch_array($show2)) {?>
 <tr class='gradeC'><td><?php echo utf8_decode($row2[0]) ; ?></td>
               <td><?php echo utf8_decode($row2[1]); ?></td>
               <td><?php echo utf8_decode($row2[2]); ?></td>
               <td class='center'><?php echo utf8_decode($row2[4]); ?></td>
               <td><?php echo utf8_decode($row2[5]); ?></td>
               <td><?php echo utf8_decode($row2[8]); ?></td>
               <td><?php echo utf8_decode($row2[9]); ?></td>
               <td><?php echo utf8_decode($row2[10]); ?></td>
               <td><?php echo utf8_decode($row2[11]); ?></td>
               <td><?php echo utf8_decode($row2[14]); ?></td>
               <td><?php echo utf8_decode($row2[12]); ?></td>
               <td><?php echo utf8_decode($row2[13]); ?></td>
</tr>
<?php
}?>

Merci d'avance pour votre aide,
En vous souhaitant d’excellentes fêtes de fin d’année.


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
20 déc. 2015 à 16:34
Bonjour,

Pour commencer ... comment sont stockées les données dans tes tables ?
(y vois tu bien les accents ?? )
Quel est l'encodage de tes tables ? elles sont bien en UTF8 ?

==> Regardes en direct dans ta BDD via PhpMyadmin par exemple.
0
mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020 4
20 déc. 2015 à 16:58
Bonjour,

Merci pour ta réponse rapide,

Les données sont stockées en utf8, je vois pas d'accents dans la base.
meme sur ma page html j'ai <meta http-equiv="content-type" content="text/html;charset=UTF-8" />.

Je comprends pas du tout l'origine de ce problème. Merci d'avance
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020
20 déc. 2015 à 17:12

je vois pas d'accents dans la base.

Ben... c'est donc qu'il y a déjà un souci lors de leur insertion en BDD.....
et c'est bien pour ça que tes recherches (avec accents) ne fonctionnent pas..
0
mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020 4 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
20 déc. 2015 à 17:22
Merci, du coup comment faire pour les enregistrer avec des accents dans la base?

j'utilise ça pour les enregistrer
$statut = utf8_encode("Commande éxpedie");


et ça me donne ça dans la base : Commande éxpedié
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020
Modifié par jordane45 le 20/12/2015 à 17:30
Ben si tu as tout paramétré en UTF8 ... tu n'as plus besoin de faire de l'encode ou de decode d'utfo8 .....
Donc logiquement tu peux directement sauvegarder comme ceci :
$statut = "Commande expédiée";


( sans faute d'orthographe tant qu'à faire... )
0
mad92men Messages postés 130 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 10 novembre 2020 4 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
21 déc. 2015 à 23:04
Super Joradan, ça marche finalement mille mercis :)

(oui lol en fait c'était plutôt appareil expédié, j'ai pas fait gaffe quand j'ai modifié les valeurs sur CCM)
0