Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 30/09/2011, 11h53   #1
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Par défaut encodage de ma database et de mes tables

Bonjour,
Que de documents sur ce sujet, pourtant impossible d'y voir clair,
même sur notre page :
http://j-willette.developpez.com/tut...-site-en-utf8/

En effet je sais parfaitement a quoi sert l'interclassement, par exemple dans un ORDER BY, mais cela ne me dit pas quel est l'encodage de ma table.

Je sais trouver l'encodage de ma data base, il est indiqué dans l'accueil de phpmyadmin.

Mais dans cette data base quel est l'encodage de chaque table , impossible de trouver cette information,

Surtout si je pouvait par un SELECT de MySql avoir ces informations ce serait super pour moi.

Merci d'avance de méclairer sur ce sujet.
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h13   #2
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
heu, c'est ça que tu cherches?
Images attachées
Type de fichier : png mysql-phpmyadmin3.png (35,2 Ko, 8 affichages)
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h30   #3
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par ledisciple Voir le message
heu, c'est ça que tu cherches?
Merci de ta réponse,
Tu dois lire les questions cela ferait avancer les choses j'ais dis clairement que je connaissais l'interclassement
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 13h43   #4
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
et ça?
http://dev.mysql.com/doc/refman/5.0/...le-status.html
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h18   #5
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Oui c'est déjas mieux ciblé ! mais rien sur les tables
Merci quand même.
Christele

JE REEDITES
En plus je vois que ma database est en UTF8 sur PhpMyadmin et pourtant
ce code me réponds "latin 1" c' est pas spécialement limpide tu vois
Code :
1
2
3
4
5
6
 
<?php
$Flag1=mysql_connect('localhost', 'foxxxx', 'zzzz12') or    die('Could not connect: ' . mysql_error());
$b = mysql_client_encoding($Flag1);
echo "<br>encodage est ".$b."<br>";
?>
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 20h20   #6
Membre éclairé
 
Avatar de firehist
 
Homme Benjamin Longearet
Intégrateur Web Freelance
Inscription : février 2008
Messages : 153
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Longearet
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Intégrateur Web Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 153
Points : 357
Points : 357
Envoyer un message via Skype™ à firehist
Bonsoir,

J'espère que j'ai bien compris, mais tu aimerai savoir avec la méthode "mysql_client_encoding" l'encodage de ta table. Hors si tu regarde la spéc PHP elle indique qu'il est retourné l'encodage du client MySQL et pas de ta table.

Pour connaître l'encodage d'une table j'ai trouvé cette possibilité:
show create table TABLE_IN_QUESTION; (regarder le CHARSET=XXX à la fin)

Ce lien à l'air intéressant.

Bon dév'
__________________
Ingénieur Web Freelance - Firehist Studio
Profil Viadeo Benjamin Longearet
Geekos.fr : Blog technique sur les technologies du Web
---
Citation:
De l'innovation nait la solution et inversement
firehist est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/10/2011, 00h14   #7
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par firehist Voir le message
Bonsoir,
J'espère que j'ai bien compris, mais tu aimerai savoir avec la méthode "mysql_client_encoding" l'encodage de ta table.etc...
Oui et mille mercis,
tu as bien compris, mais alors j'ais un PHP avec
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
header('Content-type: text/html; charset=UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head><body>
<?php
//====== et la le code induqué
?>
Alors mon SQL est UTF8 mon PHP aussi et le html aussi alors c'est qui qui est en latin1
Si non ta réponse m'a fait découvrir plein de points qui précisent bien les choses mille mercis encore.
christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 10h07   #8
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Bonjour,
Voila avec tout cela je me suis fait un résumer qui servira a qui veulent.
Je notes que:
1) l'interclassement ne sert qu'au tri dans un ORDER BY ...
2) l'encodage indiqué dans la premiere page de PHPMYADMIN n 'est pas significatif
3) ce qui compte est de savoir quel est l encodage des tables vu par MySql

ce testes "a.php" est tres tres util (merci firehist )

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?php
header('Content-type: text/html; charset=UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head><body>
<?php
$Flag1=mysql_connect('localhost', 'xxxx', 'yyyy') or    die('Could not connect: ' . mysql_error());
$Flag2=mysql_select_db("tabase");
$infos_gene = mysql_get_server_info($Flag1);
echo "==> ".$infos_gene." <br />";
//======= encodage par default de MySql =======
$encode_default = mysql_client_encoding($Flag1);
echo "<br>l encodage par default est ".$encode_default."<br />";
//======encodage d une de tes table==========
$table="0_test";
$encodage_table = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
echo "<br /> encodage et details de la table ".$table." <br />";
print_r($encodage_table);
?> 
</body></html>

2)le php va envoyer un html au navigateur, quel encodage est choisi ? (content-type entre les HEAD du HTML)
3) le php va envoyer les echo ou print avec quel encodage ? (as tu précisé un header('Content-type: text/html; charset=UTF-8'); )
ou l'instruction à modifier dans le httpd.conf ou dans un .htaccess : AddDefaultCharset UTF-8

il faut donc connaitre ces trois encodages

(comme les langues il faut des traducteurs MySql et Le Navigateur)

Je dis "précises" car si SQL est anglais et que je lui dit, ma page php est française
alors ==>MYSQL<== traduira du français vers l'anglais, entre mon php et mon SQL !
et inversement ( lecture et en écriture ) !

Alors php devrait avoir la meme langue que le html qu'il génére !
Donc le
header('Content-type: text/html; charset=UTF-8');
Oblige
<meta http-equiv="content-Type" content="text/html;charset=UTF-8">
De toute façon le deuxieme l'emporte sur le premier.

HOP THIS HELP !
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/10/2011, 10h02   #9
Membre éclairé
 
Avatar de firehist
 
Homme Benjamin Longearet
Intégrateur Web Freelance
Inscription : février 2008
Messages : 153
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Longearet
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Intégrateur Web Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 153
Points : 357
Points : 357
Envoyer un message via Skype™ à firehist
Pour mes sites en UTF-8, je ne me prend pas trop la tête.
  • Fichier encoder en UTF-8
  • Header UTF-8 dans mes layouts
  • mysql_query("SET NAMES 'utf8'"); avant ta requête
__________________
Ingénieur Web Freelance - Firehist Studio
Profil Viadeo Benjamin Longearet
Geekos.fr : Blog technique sur les technologies du Web
---
Citation:
De l'innovation nait la solution et inversement
firehist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 11h33   #10
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par firehist Voir le message
Pour mes sites en UTF-8, je ne me prend pas trop la tête.
  • Fichier encoder en UTF-8
  • Header UTF-8 dans mes layouts
  • mysql_query("SET NAMES 'utf8'"); avant ta requête
Oui maiss en fait MySql restera en Latin 1
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 23h07   #11
Membre éclairé
 
Avatar de firehist
 
Homme Benjamin Longearet
Intégrateur Web Freelance
Inscription : février 2008
Messages : 153
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Longearet
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Intégrateur Web Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 153
Points : 357
Points : 357
Envoyer un message via Skype™ à firehist
Vi certainement, je ne me suis jamais posé plus la question, tous les caractères sont passés.
Bon ok c'est pas trop pro mais ça marche!

Héhéhé
__________________
Ingénieur Web Freelance - Firehist Studio
Profil Viadeo Benjamin Longearet
Geekos.fr : Blog technique sur les technologies du Web
---
Citation:
De l'innovation nait la solution et inversement
firehist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 23h16   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par firehist Voir le message
mysql_query("SET NAMES 'utf8'"); avant ta requête
plutôt mysql_set_charset
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 23h34   #13
Membre éclairé
 
Avatar de firehist
 
Homme Benjamin Longearet
Intégrateur Web Freelance
Inscription : février 2008
Messages : 153
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Longearet
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Intégrateur Web Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 153
Points : 357
Points : 357
Envoyer un message via Skype™ à firehist
Merci stealth.

J'essayerai dans mes prochains dév. Je ne l'ai jamais utilisé auparavant.
Maintenant avec des ORMs comme Doctrine, cette partie est devenue plutôt abstraite pour le développeur que je suis
__________________
Ingénieur Web Freelance - Firehist Studio
Profil Viadeo Benjamin Longearet
Geekos.fr : Blog technique sur les technologies du Web
---
Citation:
De l'innovation nait la solution et inversement
firehist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 23h40   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par firehist Voir le message
Merci stealth.

J'essayerai dans mes prochains dév. Je ne l'ai jamais utilisé auparavant.
Maintenant avec des ORMs comme Doctrine, cette partie est devenue plutôt abstraite pour le développeur que je suis
pour Doctrine et Mysql l'encodage est correct qu'a partir de la version 5.3.6 de PHP et la version du DBAL 2.0.5, le problème c'est que si on ne définie pas le charset du client, les fonctions d’échappement de marche pas correctement (comme mysql_real_escape_string), le SET NAMES dit juste comment transmettre les informations
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 07h19   #15
Membre éclairé
 
Avatar de firehist
 
Homme Benjamin Longearet
Intégrateur Web Freelance
Inscription : février 2008
Messages : 153
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Longearet
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Intégrateur Web Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 153
Points : 357
Points : 357
Envoyer un message via Skype™ à firehist
Merci bien!

Je prend note
__________________
Ingénieur Web Freelance - Firehist Studio
Profil Viadeo Benjamin Longearet
Geekos.fr : Blog technique sur les technologies du Web
---
Citation:
De l'innovation nait la solution et inversement
firehist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 08h24   #16
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

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

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par stealth35 Voir le message
pour Doctrine et Mysql l'encodage est correct qu'a partir de la version 5.3.6 de PHP et la version du DBAL 2.0.5, le problème c'est que si on ne définie pas le charset du client, les fonctions d’échappement de marche pas correctement (comme mysql_real_escape_string), le SET NAMES dit juste comment transmettre les informations
Tu m'avoueras que ça mériterait une révision de 99% des TOPOS dont les notres tant ce qui passe aux yeux de presque toutes et tous comme le NEC PLUS ULTRA, n' etait en fait pas trés fiable !
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 09h52   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par christele_r Voir le message
Tu m'avoueras que ça mériterait une révision de 99% des TOPOS dont les notres tant ce qui passe aux yeux de presque toutes et tous comme le NEC PLUS ULTRA, n' etait en fait pas trés fiable !
oui y'a du ménage a faire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web