我正在尝试获取数据库中的所有课程,并将其显示在列表视图中,但我遇到了一些错误在我的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) {
应该可以正常工作,一切都应该按预期工作。