2015-02-23 5 views
1

У меня есть textlbabelfield, в котором я получаю данные из своей внешней базы данных через JSon. Теперь я хочу, чтобы мой пользователь изменил это поле и разместил его в базе данных. Но опять же, это не сработает, база данных не изменилась. Пожалуйста, вы могли бы рассмотреть мой код:Нужна ваша помощь, IOS Swift Опубликовать данные Json Alamofire

PHP код:

 <?php 
/* include db.config.php */ 
include_once("config.php"); 
// Get user id 
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”; 
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”; 

// get user data 
mysql_query('SET NAMES "utf8"'); 
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'"); 

die; 
mysql_close($conn); 
/* JSON Response */ 

?> 

Alamofire пост FUNC:

@IBAction func Signature(sender: UIButton) { 
     var signaturesave1 = self.signature 
     let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
     var username = prefs.valueForKey("USERNAME") as NSString 
     //load and parse the JSON into an array 
     Alamofire.request(.POST, "http://mywebsite/app/data/jsonsavesignature.php", parameters: ["username": username, "signature":signaturesave1]).responseJSON { (request, response, data, error) in 
      if (error != nil) 
      { 
       // got an error in getting the data, need to handle it 
       println("error calling GET usersdata") 
       println(error) 
      } 
      else { 

     self.performSegueWithIdentifier("signature_to_persoinfo", sender: self) 
    } 

     } 
} 
+0

Любой может помочь? – ChinaXiaoHong

+0

Мне не удалось найти переменную $ username в вашем коде! Также вы переписываете значение $ id в 6-й строке. Эта переменная будет $ id или $ username? – Karthikeyani

+0

Да, вы правы, у меня есть проблема в моей переменной. Я редактирую свой пост, но все еще работает; Я хочу изменить свою подпись для одного имени пользователя. – ChinaXiaoHong

ответ

-1

я получил ответ, спасибо Karthikeyani за вашу помощь, я отправляю ответ поделиться со всеми:

Мой PHP скрипт:

<?php 

/* include db.config.php */ 
include_once("config.php"); 
// Get user id 
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”; 
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”; 

// get user data 
mysql_query('SET NAMES "utf8"'); 
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'"); 

mysql_close($conn); 
/* JSON Response */ 

?> 

мой запрос пост Alamofire:

@IBAction func Signature(sender: UIButton) { 
     var signaturesave1 = self.signature.text 
     let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
     var username = prefs.valueForKey("USERNAME") as NSString 
     let parameters = 
      ["username": username, "signature":signaturesave1] 

     //load and parse the JSON into an array 
     Alamofire.request(.POST, "http://mywebsite.com/app/data/jsonsavesignature.php", parameters: parameters).responseJSON { (request, response, data, error) in 

       self.performSegueWithIdentifier("signature_to_persoinfo", sender: self) 

     } 
    } 
+0

Вы удалили if, else условие в ** Alamofire post request ** в обновленном коде справа? – Karthikeyani

+0

Да, а также параметры в Alamofire были неправильными, я думаю. Я не уверен, что мой код завершен, но он работает – ChinaXiaoHong

+0

ha ha lol :) отлично. – Karthikeyani

2

При обновлении существующих данных, то вам нужно использовать запрос на обновление, а не вставить запрос , Вставить запрос - вставить новые данные. Поэтому замените mysql_query("INSERT signature INTO users WHERE username='$username'"); на mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");, где $ data является сигнатурой пользователя.

+0

Я редактирую свой PHP-скрипт. С вашими изменениями я могу обновить таблицу. Но данные в mysql ошибочны. Например, я добавляю «мое имя Чарльз» в подпись, но результат в моей базе данных: {URL: http: //mywebsite/app/data/jsonsavesignature.php} – ChinaXiaoHong

+0

Позвольте мне узнать переменную, которую вы хотите обновить в таблице и имя поля. Поскольку в настоящее время вы обновляете поле подписи на основе поля имени пользователя. Но в предыдущем посте вы указали имя пользователя в качестве ввода. Итак, что вы хотите обновить в таблице? И какая будет ценность для подписи. Приведите пример. Кроме того, удалите примеры кода, которые я предоставил в предыдущей статье, кроме изменений в запросе обновлений. – Karthikeyani

+0

Имя моей таблицы: «пользователи». Я хочу обновить поле «подпись» на основе поля имени пользователя. Значение для подписи - varchar (30). Например: «Мне нравится Stackoverflow» – ChinaXiaoHong

Смежные вопросы