Cela me rend fou. Cela semble si simple, et il me manque probablement quelque chose d'évident - et je pense fortement que c'est parce que mes compétences PHP/mysql font défaut, mais je n'arrive pas à le faire fonctionner. J'ai cherché ailleurs (et volé) un certain nombre d'extraits de code de StackOverflow en essayant de résoudre le problème, mais je ne suis toujours pas convaincu que je l'ai fait fonctionner. De Xcode J'essaye de coder un objet NSDictionary dans JSON (en utilisant le framework JSON) pour pouvoir stocker dynamiquement le tableau dans mysql (idéalement comme un seul objet aplati - je sais, je le sais) en utilisant la méthode PHP POST .Array/Dict De Xcode à JSON à PHP à mySql
Le code est ci-dessous. Je peux créer le json ok. Je peux me connecter ok, je peux changer les variables qui ne sont pas des variables de tableau & qui n'ont pas besoin d'être envoyé via json, je peux faire à peu près tout. Je ne peux pas sembler passer ce json et le stocker dans mysql.
Oui- im a noob.
Thx ...
J'ai jusqu'ici:
dans Xcode
NSDictionary *loginDict = [NSDictionary dictionaryWithObjectsAndKeys:
@"aname", @"username",
@"hello", @"password",
nil];
NSString *jsonString = [loginDict JSONRepresentation];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSString *post = [NSString stringWithFormat:@"json=%@", jsonString];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
[request setURL:[NSURL URLWithString:@"http://domain.com/post_dict.php"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
à post_dict.php
<?php
$rawJsonData = $_POST['json'];
$decodedData = json_decode($rawJsonData); //do i even need to decode if i want to store a flattened json object in mysql?
//Connect To Database
$hostname='**BLACKEDOUT**.com';
$username='**BLACKEDOUT**';
$password='**BLACKEDOUT**';
$dbname='**BLACKEDOUT**';
$usertable='users';
//I want to update the Records field with the array
$recordsfield = 'Records';
mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);
$query = "UPDATE $usertable SET $recordsfield = '$decodedData' ";//do i encode? serialize? dunno
$result = mysql_query($query);
if(!$result)
{
mysql_close();
echo mysql_error();
return;
}
mysql_close();
?>
génial - merci pour une réponse rapide - mal obtenir sur elle. –