Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php服务器到android的数据转换失败_Android_Eclipse_Android Emulator - Fatal编程技术网

从php服务器到android的数据转换失败

从php服务器到android的数据转换失败,android,eclipse,android-emulator,Android,Eclipse,Android Emulator,这部分编码有错误吗?我不明白具体的问题在哪里。作为我的结果=空。在传递到php并获得php服务器回复之后。它没有按应有的方式检索数据。调试并没有出现错误,应用程序正在工作,但它并不像我编程的那个样运行。。。有人能从这个零件上看到任何环孔吗 BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859- 1"),8); sb = new StringBuil

这部分编码有错误吗?我不明白具体的问题在哪里。作为我的结果=空。在传递到php并获得php服务器回复之后。它没有按应有的方式检索数据。调试并没有出现错误,应用程序正在工作,但它并不像我编程的那个样运行。。。有人能从这个零件上看到任何环孔吗

    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-    1"),8);

                sb = new StringBuilder();

                sb.append(reader.readLine() + "\n");

                String line="0";

                while ((line = reader.readLine()) != null) {

                sb.append(line + "\n");
                }
                is.close();
                result=sb.toString();
PHP编码端
 $db_host = "localhost";
 $db_username = "root";
 $db_pass = "trickster911";
 $db_name = "track_database";

 @mysql_connect("$db_host","$db_username","$db_pass") or die ("Could not connect to database");
 @mysql_select_db("$db_name");


 $imei = $_POST['code3'];


 $sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());
 $result=mysql_query($sql);


 if($result){
 echo "Y";
 }

 else {
 echo "N";
 }
 $output = array();
  while($row=mysql_fetch_assoc($result))    
  $output[]=$row;
   print(json_encode($output));
   mysql_close();

 ?>
调试后,

 JSONTokener.nextCleanInternal() line: 112  
 JSONTokener.nextValue() line: 90   
 JSONObject.<init>(JSONTokener) line: 154   
 JSONObject.<init>(String) line: 171    
 Tracking$1.onClick(View) line: 119 
 Button(View).performClick() line: 2408 
 View$PerformClick.run() line: 8816 
 ViewRoot(Handler).handleCallback(Message) line: 587    
 ViewRoot(Handler).dispatchMessage(Message) line: 92    
 Looper.loop() line: 123    
 ActivityThread.main(String[]) line: 4627   
 Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not      available [native method]    
 Method.invoke(Object, Object...) line: 521 
 ZygoteInit$MethodAndArgsCaller.run() line: 868 
 ZygoteInit.main(String[]) line: 626    
 NativeStart.main(String[]) line: not available [native method] 
JSONTokener.nextCleanInternal()行:112
JSONTokener.nextValue()行:90
JSONObject.(JSONTokener)行:154
JSONObject.(字符串)行:171
跟踪$1.onClick(视图)行:119
按钮(视图)。performClick()行:2408
查看$PerformClick.run()行:8816
ViewRoot(处理程序).handleCallback(消息)行:587
ViewRoot(处理程序)。dispatchMessage(消息)行:92
Looper.loop()行:123
ActivityThread.main(字符串[])行:4627
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:521
ZygoteInit$MethodAndArgsCaller.run()行:868
颧骨单位。主(字符串[])行:626
NativeStart.main(字符串[])行:不可用[本机方法]
而不是:

$sql=("SELECT latitude, longitude FROM track WHERE imei = ('$imei')") or die (mysql_error());
试试这个:

$sql=("SELECT latitude, longitude FROM track WHERE imei = '".$imei."'") or die (mysql_error());

我不确定,但也许你的问题就是因为这个。如果它能解决您的问题,请给出一些反馈。

结果
绝对不是空的
StringBuilder.toString()
从不返回null。除此之外,我们没有足够的信息来完全回答问题——例如,我们不知道PHP服务器正在使用什么编码。当然,编码名称中不应该有所有的空格……我首先将result=null。然后我希望在从服务器接收到数据后,它会自动覆盖它。。。但确实如此。所以我怀疑这是错误的一部分。如果你只看到
result
为null,那么你永远不会看到最后一行代码。但恐怕我们无法一行一行地引导您完成整个诊断过程。你用过调试器吗?有多远?它读过一行吗?我调试过,它给了我一个错误,告诉我结果不可读。如果我运行这个应用程序,它只会给出result=null的值,而不是从php服务器端获取的数据。就像以前一样,当涉及到调试时,您需要在通信中更加清晰。您将无法使用
result
,除非您为其指定了一个值,但您应该能够在这之前逐步执行。如果没有比您目前所展示的更仔细的调试(和报告),恐怕我们将无法帮助您。我建议你花一点时间,仔细地调试(最好是创建了一个简短但完整的Java控制台应用程序——我怀疑Android与此无关),准确地报告发生了什么,并将所有这些编辑到你的问题中。这变得最糟糕了。PHP弹出窗口在更改为您的建议后出现语法错误。无论如何,TQ。您在PHP中也可以使用JSON格式打印回显。我建议您尝试在不同的时间发送和接收回显和打印值。如果在接收这两个值时出现混淆,您可以更容易地看到。