2011-05-23 12 views
0

我爲iPhone創建了一個工作應用程序,它通過PHP頁面從MYSQL數據庫獲取數據,然後在UIWebView中打印數據。在cocoa-touch中通過PHP使用MYSQL數據?

但是這裏的問題是我不想再在UIWebView中打印數據,我想要檢索數據並將其拉回到應用程序中,以將UILabel.text更改爲MYSQL數據。

我現在有以下(其中數據打印到一個UIWebView(不包括最代碼由於DB連接密碼等)):

PHP FILE:

// Localize the GET variables 
    $name = isset($_GET['name']) ? $_GET['name'] : ""; 

    // Protect against sql injections 
    $name = mysql_real_escape_string($name); 

    $cash = "SELECT cash FROM t_users WHERE username='$name' LIMIT 1"; 


    $result = mysql_query($cash,$conn); 

    if(!$result) { 
     die("Error retrieving scores " . mysql_error()); 
    } 
?> 
<!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"> 
    <head> 
    <meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/> 
    </head> 
    <body> 
     <?php 
      // Display the table 
      while ($row = mysql_fetch_object($result)) { 
       echo ''.$row->cash.''; 
     } 

      mysql_free_result($result); 
      mysql_close($conn); 
     ?> 
    </body> 
</html> 

PlayerInfo.m

-(IBAction)refreshData:(id)sender { 

test1AppDelegate *mainDelegate = (test1AppDelegate *)[[UIApplication sharedApplication] delegate]; 

NSString * login_key = @"REMOVED FOR STACKOVERFLOW"; 
NSString * username = [mainDelegate.currentUser stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSString *urlString = [NSString stringWithFormat:@"REMOVED FOR STACKOVERFLOW/put_score.php?login_key=%@&name=%@", 
         login_key,username]; 
NSURL *url = [NSURL URLWithString:urlString]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[self.webview loadRequest:requestObj]; 
} 

這個變化顯示了在webvi中的球員現金新手,但我想更改UILabel以顯示現金數字。

請幫忙?

謝謝!

+0

這是可能的...看看我下面的評論。 – Remover 2011-05-27 21:52:31

回答

0

您可以將標籤的文本設置爲按行的>現​​金價值:

label.text = [NSString stringWithUTF8String:row-cas]; 

,或者你可能需要在NSString類的stringWithCString:encoding:類方法。

+0

這不起作用:( – buzzkip 2011-05-23 22:30:05

+0

這甚至不工作爲僞代碼:P否,但嚴重的是,你需要看看一個json或xml。沒有其他好的方式來傳輸數據在應用程序<->後。 – Fredrik 2011-05-23 23:02:49

+0

你能沒有訪問行 - >現金的價值?是不是C - 字符串。對不起...我打算這更多作爲一個問題..應該留下真正的評論 – Remover 2011-05-27 15:54:18

0

您應該讓PHP腳本返回JSON或者只是返回您感興趣的字符串。最好是JSON。谷歌「REST API」,因爲這就是你真正想要的。

幾個不錯的庫建議是:

  • JSONKit
  • ASIHTTPRequest

谷歌將幫助你找到那些爲好。