Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2007, 12h23   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 11
Points : 11
Par défaut [SQL] Formater chaîne SQL pour HTML

Bonjour. Je recherche une fonction php qui permet de formater les chaînes de caractère de mysql pour les afficher dans une page HTML.
Exemple: j'ai "Pirates des Caraïbes" de stocké dans mysql et quand j'affiche cette valeur dans ma page, il s'affiche "Pirates des Carabes". J'ai essayé htmlEntities($valeur) et mysql_real_escape_string($valeur) mais toujours le même affichage. J'ai été voir sur la doc officiel de php mais je m'y perd dans les centaines de fonctions php. Merci à ceux qui pourront m'aider.
conics est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 12h38   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Essaie avec ça :
http://fr3.php.net/manual/fr/function.utf8-decode.php
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 14h02   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 11
Points : 11
Merci bisunurs pour ta réponse, mais l'affichage reste le même avec cette fonction...
conics est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 14h43   #4
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
il faudrait déjà savoir le/les jeux de caractères que tu utilises dans tes bases mySQL (typiquement utf8 ou iso-8859-1(5), ainsi que celui que tu utilises sur ta page html (la balise meta qui ressemble à
Code :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
Si tu utilises de l'utf8, essaye déjà d'exécuter ceci (en php) après ta connexion à la base :
Code :
$dbh->query("SET NAMES 'UTF8'");
(ici je l'exécute au moyen d'un objet PDO qui gère ma bdd, mais il s'agit d'une requête toute simple, telle un SELECT basique. si tu n'utilises pas de PDO, c'est donc :
Code :
mysql_query("SET NAMES 'utf8'");
Bon courage, et vive l'anglais sans ses accents et cie !
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 14h50   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 11
Points : 11
Dans ma page html, c'est l'iso-8859-1 qui est utilisé. Dans ma base je sais pas. Comment je fais pour savoir?
conics est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 15h10   #6
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
la question qu'il fallait pas me poser..

je suppose que tu utilises phpmyadmin..

tu as différents types de variables serveurs, dont COLLATE . Celle-ci correspond au format d'échange de données (si je me trompe pas), et tu as les interclassements de tes tables.
A l'accueil de phpmyadmin, lorsque tu es loggé (par défaut tu l'es automatiquement), va voir le lien 'variables du serveur'. Malheureusement c'est peu compréhensible..

enfin bref, l'équivalent de ISO-8859-1 dans MySQL, c'est je crois, latin1_bin . essaie de convertir une table dans ce jeu là pour voir si les données sont mieux affichées. sinon tente un
Code :
mysql_query("SET NAMES 'latin1_bin'");
dans ton code php, juste après la connexion à la base
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 15h39   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 11
Points : 11
Je ne comprends pas grand chose à ce que tu écris , mais je me demande si c'est nécessaire de faire tout ça car dans tous les tutos que j'ai vu affichant des données de mysql, une simple fonction de conversion suffit... Enfin j'ai essayé d'exécuter SET NAMES 'latin1_bin' en invite de commande mais elle plante. et quand je met la ligne
Code :
1
2
 
mysql_query("SET NAMES 'latin1_bin'");
après ma connexion, l'affichage est toujours le même.
conics est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h18.


 
 
 
 
Partenaires

Hébergement Web