2009-08-05 8 views
0

PHPを使用してSQLデータベースから結果を返して、JSONに変換してからFlexで読み込もうとしています。私はここからどこへ行くの完全な損失で午前Adob​​e Flexを使用したJSON解析エラー -

<?php 

if (isset($_GET['getclassdb'])) 
    { 
    mysql_connect($URL, $USERNAME, $PASSWORD); 
    mysql_select_db($DATABASE) or die('Cannot connect to database.'); 
    $returnArray = array(); 
    $query = 'SELECT * FROM classdb'; 
    $result = mysql_query($query); 
    while ($row = mysql_fetch_assoc($result)) 
     { 
     array_push($returnArray, $row); 
     } 

    mysql_close(); 
    echo json_encode($returnArray); 
    } 
elseif (isset($_GET['setclassdb'])) 
    { 
    $jsonString = urldecode($_GET['jsonSendData']); 
    $jsonString = str_replace("\\", "", $jsonString); 
    $data = json_decode($jsonString, true); 
    mysql_connect($URL, $USERNAME, $PASSWORD); 
    mysql_select_db($DATABASE) or die('Cannot connect to database.'); 
    foreach($data as $classdbEntry) 
     { 
     $query = sprintf('UPDATE Tutorials SET rating = "%s" WHERE id = "%s"', mysql_real_escape_string($classdbEntry['rating']) , mysql_real_escape_string($classdbEntry['id'])); 
     $result = mysql_query($query); 
     if (!$result) 
      { 
      mysql_close(); 
      echo mysql_error(); 
      return; 
      } 
     } 

    mysql_close(); 
    echo "database updated"; 
    } 

?> 

-

JSONParseError: Unexpected < encountered at com.adobe.serialization.json::JSONTokenizer/parseError()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONTokenizer.as:579] at com.adobe.serialization.json::JSONTokenizer/getNextToken()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONTokenizer.as:168] at com.adobe.serialization.json::JSONDecoder/nextToken()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONDecoder.as:83] at com.adobe.serialization.json::JSONDecoder()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSONDecoder.as:60] at com.adobe.serialization.json::JSON$/decode()[/Users/mesh/src/as3corelib/src/com/adobe/serialization/json/JSON.as:78] at main/getPHPData()[C:\wamp\www\ClassDB\src\main.mxml:25] at main/__getData_result()[C:\wamp\www\ClassDB\src\main.mxml:58] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.rpc.http.mxml::HTTPService/ http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C :\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\mxml\HTTPService.as:290] at mx.rpc::AbstractInvoker/ http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C :\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:193] at mx.rpc::Responder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:43] at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74] at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete()

そして、ここでは私が使用しているPHPで - ここ

は、私が受け取るパースエラーです。正しい方向への助けやヒントがあれば幸いです。

答えて

0

は、ブラウザでのPHPを開き、出力が正しいJSON構文である場合は、その後、JSONViewアドオンJSONエラーを見つけるのに助けになるはずです。..

0
Firefoxを使用している場合は...見てみませんでした

私は問題は、あなたが "return"(プリントアウト)していないということです。これは、actionscriptクラスが期待している有効なJSONです。あなたのPHPスクリプトには何も返さないか、または "database updated"という文字列も返されません。どちらも有効なJSONではありません。

私は、アクションスクリプト側が受け取るものについて特定の期待を持っているかどうかわかりません。そうでなければ、単に文字列 "{}"を出力すれば十分でしょう。これは空のJSONオブジェクトになります。

関連する問題