Pblm accents dans base MySQL
a.finot
Messages postés
80
Statut
Membre
-
a.finot Messages postés 80 Statut Membre -
a.finot Messages postés 80 Statut Membre -
Bonjour,
J'ai un problème d'accents dans ma base MySQL lorsque je mets à jour des enregistrements via une page de mon site.
J'avais le même problème dans l'autre sens et j'ai utilisé la fontion htmlentities.
Y'a t-il une solution dans le même genre ?
Ma base est encodé en utf8_unicode-ci.
Voici un bout de mon code auquel j'ai essayé d'ajouter la fonction utf8_decode (en gras dans le code) mais ça ne marche pas... je ne l'ai peut-être pas mise au bon endroit, je débute ;-).
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . utf8_decode($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE actualites SET texte=%s WHERE ID=%s",
GetSQLValueString($_POST['texte'], "text"),
GetSQLValueString($_POST['ID'], "int"));
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$Result1 = mysql_query($updateSQL, $ConnexionMLV) or die(mysql_error());
$updateGoTo = "accueil.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$query_rsModifActu = "SELECT * FROM actualites WHERE ID = 1";
$rsModifActu = mysql_query($query_rsModifActu, $ConnexionMLV) or die(mysql_error());
$row_rsModifActu = mysql_fetch_assoc($rsModifActu);
$totalRows_rsModifActu = mysql_num_rows($rsModifActu);
?>
Merci par avance pour votre aide !!!!
J'ai un problème d'accents dans ma base MySQL lorsque je mets à jour des enregistrements via une page de mon site.
J'avais le même problème dans l'autre sens et j'ai utilisé la fontion htmlentities.
Y'a t-il une solution dans le même genre ?
Ma base est encodé en utf8_unicode-ci.
Voici un bout de mon code auquel j'ai essayé d'ajouter la fonction utf8_decode (en gras dans le code) mais ça ne marche pas... je ne l'ai peut-être pas mise au bon endroit, je débute ;-).
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . utf8_decode($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE actualites SET texte=%s WHERE ID=%s",
GetSQLValueString($_POST['texte'], "text"),
GetSQLValueString($_POST['ID'], "int"));
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$Result1 = mysql_query($updateSQL, $ConnexionMLV) or die(mysql_error());
$updateGoTo = "accueil.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$query_rsModifActu = "SELECT * FROM actualites WHERE ID = 1";
$rsModifActu = mysql_query($query_rsModifActu, $ConnexionMLV) or die(mysql_error());
$row_rsModifActu = mysql_fetch_assoc($rsModifActu);
$totalRows_rsModifActu = mysql_num_rows($rsModifActu);
?>
Merci par avance pour votre aide !!!!
A voir également:
- Pblm accents dans base MySQL
- Base de registre - Guide
- Mysql community download - Télécharger - Bases de données
- Formules mathématiques de base - Télécharger - Études & Formations
- Exemple base de données access à télécharger gratuit - Forum Access
- Lettres avec accents - Guide