Bonjour,
J'ai un souci avec ma donnée JSON lorsque je la transforme en tableau avec php , tout est perdu.
Pourriez vous m'aider ?
Voici ma donnée JSON :
1. Je suppose que le "Noum\u00e9a" peut poser problème.
2. Cela est envoyé via ExtJS ou tout mon projet est en utf8 sans BOM converti avec Notepad.
Voici mon code php :
A bientot
Modifié par Vincent_nk (08 May 2013 - 04:51)
J'ai un souci avec ma donnée JSON lorsque je la transforme en tableau avec php , tout est perdu.
Pourriez vous m'aider ?
Voici ma donnée JSON :
json:{"data":{"id":"1","nom":"Daudigny222","prenom":"Vincent","adresse":"30 rue du 5 mai","cp":"98000","ville":"Noum\u00e9a","id_cp":"1","id_ville":"1"}}
1. Je suppose que le "Noum\u00e9a" peut poser problème.
2. Cela est envoyé via ExtJS ou tout mon projet est en utf8 sans BOM converti avec Notepad.
Voici mon code php :
<?php
//2 DB CREDENTIALS + CONNECTION
$conn = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("vo_test", $conn ) or die(mysql_error());
mysql_query('SET CHARACTER SET utf8');
//3 UTILS
function cleanUtils( $row )
{
$magic_quotes_active = get_magic_quotes_gpc();
foreach ( $row as $field=>$value )
{
if( is_string( $value ) )
{
if( $magic_quotes_active )
{
$value = stripslashes( $value );
}
$row->$field = mysql_real_escape_string( $value );
}
}
return $row;
}
//4 MYSQL C-R-U-D METHODS
//C
function create( $result )
{
$query = "insert into owners ( name, address, state ) values ( $result->name, $result->address, $result->state )";
error_log( "create " . $query );
mysql_query( $query );
$result = array( 'success'=>true, 'data'=>true );
echo( json_encode($result ) );
}
//R
function read()
{
$query = "SELECT tb1.id, tb1.nom, tb1.prenom, tb1.adresse, tb2.libelle as cp, tb3.libelle as ville, tb2.cp as id_cp, tb3.ville as id_ville FROM `adresse` AS tb1, `cp` AS tb2, `ville` AS tb3 WHERE tb1.cp = tb2.cp AND tb1.ville = tb3.ville ";
$qResult = mysql_query($query);
$listResult = array();
while($row = mysql_fetch_assoc($qResult))
{
array_push($listResult, $row );
}
$result = array( 'success'=>true, 'data'=>$listResult );
//the only thing we do here is display the content.
echo( json_encode($result ) );
}
//U
function update( $result )
{
if( isset( $result->id ) )
{
$query = "UPDATE adresse SET nom = 'toto', prenom = '$result->prenom', adresse = '$result->adresse' WHERE id = $result->id";
mysql_query($query);
$query = "UPDATE cp SET libelle = '$result->cp' WHERE cp = $result->id_cp";
mysql_query($query);
$query = "UPDATE ville SET libelle = '$result->ville' WHERE ville = $result->id_ville";
mysql_query($query);
$result = array( 'success'=>false, 'data'=>true );
echo( json_encode($result ) );
}
}
//D
function destroy( $result )
{
if( isset( $result->id ) )
{
$query = "DELETE FROM owners WHERE id = $result->id LIMIT 1";
error_log( "delete " . $query );
mysql_query($query);
$result = array( 'success'=>true, 'data'=>true );
echo( json_encode($result ) );
}
}
//5 GET CRUD ACTION, GET POST DATA, EXECUTE CRUD METHOD
$action = $_GET['action'];
if( $action )
{
if( $action == "read" )
{
read();
}
else
{
//http://stackoverflow.com/questions/664148/how-to-access-post-data-in-php
$result = file_get_contents('php://input');
if( isset( $result ) )
{
$fp = fopen('data.txt', 'w');
fwrite($fp, 'json:'.$result);
fclose($fp);
$result = json_decode( $result );
$result = cleanUtils( $result );
if( $action == "update" )
update( $result );
else
if( $action == "destroy" )
destroy( $result );
else
if( $action == "create" )
create( $result );
}
}
}
mysql_close( $conn );
?>
A bientot

Modifié par Vincent_nk (08 May 2013 - 04:51)