json数组android,php代码


json array android, php code

我正在尝试获取数据库中的所有课程,并将其显示在列表视图中,但我遇到了一些错误在我的php脚本中,以下是脚本:

else if ($tag == 'get_courses'){
$uid = $_POST['uid'];
$courses = $db->getcourses($uid);
if ($courses) {
$response["success"] = 1;
$response["message"] = "Post Available!";

foreach ($courses as $course) {
    $x = array();
    $x["cname"]  = $course["cname"];//here is the error
    $x["insname"] = $course["insname"];//and here
    $response["courses"] = array();
    //update our repsonse JSON data
    array_push($response["courses"], $x);
}
// echoing JSON response
echo json_encode($response);

这是我的功能:

public function getcourses($uid) {
$result = mysql_query("Select * FROM courses WHERE ins_uid = '$uid'")or die(mysql_error());
return mysql_fetch_array($result);

以及我的错误:

11-01 02:04:36.647    5174-5191/tk.bauannouncement.bau E/JSON﹕ <br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'cname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>59</b><br />
<br />
<b>Warning</b>:  Illegal string offset 'insname' in <b>E:'xamp'htdocs'learn2crack_login_api'index.php</b> on line <b>60

11-01 02:04:36.647 5174-5191/tk.guannouncement.bau E/JSON分析器﹕分析数据org.json.JSONException时出错:值

查询将为用户返回所有课程。

请提供帮助并提前感谢

您的函数getcourses只返回1项,更不用说一个巨大的SQL注入了

$uid = $_POST['uid']; //reading from user input
$courses = $db->getcourses($uid);
public function getcourses($uid) {
    $result = mysql_query("Select * FROM courses WHERE ins_uid = '$uid'")or die(mysql_error());
    return mysql_fetch_array($result);
}

您需要重新制作getcourses,以便它解决这两个问题。

public function getcourses($uid) {
    $uid = intval($uid); //just an example, you should be preparing / executing your query
    //but that that another question
    $result = mysql_query("Select * FROM courses WHERE ins_uid = '$uid'")or die(mysql_error());
    $return = array();
    while ($row = mysql_fetch_array($result))
        $return[] = $row;
    return $return;
}

现在,您的getcourses函数将返回一个course数组,而不是只返回一个课程,因此,您的以下代码foreach ($courses as $course) {应该可以正常工作,一切都应该按预期工作。