尝试为Android制作可管理的输出,以将$ output转换为JSONObjects。当我使用注释掉的底线时,它在Android的日志中接收数据就好了,但是不能将JSONArray转换为JSONObject - 因此希望foreach循环自己返回每个SQL行。我无法看到任何语法问题,所以我不知道PHP在抱怨什么 - 任何想法?此外,当我使用注释掉的打印代码时,它会返回正确的结果,因此我知道访问数据库没有问题。 这是代码:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "*");
define("DB_PASSWORD", "*");
define("DB_DATABASE", "*");
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db(DB_DATABASE);
$sql=mysql_query("select * from QUESTIONS where CATEGORY like 'elections'");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
foreach($output) {
echo $output;
}
mysql_close();
//print(json_encode($output));
?>
这就是错误:
Parse error: syntax error, unexpected ')' in /home/frehud/public_html/android_api/getQuestions/index.php on line 13
答案 0 :(得分:2)
您在foreach循环中缺少值赋值。
而不是foreach($output)
你需要做这样的事情:
foreach($output as $value) {
echo $value;
}
答案 1 :(得分:2)
您需要在变量中使用as
关键字和assign
每个值(此处为$ value)。然后echo
该变量。
如下所示:
foreach($output as $value) {
echo $value;
}
答案 2 :(得分:1)
看起来你错过了while循环的开口大括号:
while($row=mysql_fetch_assoc($sql))
应该是:
while($row=mysql_fetch_assoc($sql)) {
此外,您不需要内部foreach
循环,您应该可以通过while循环中填充的$row
变量访问行数据,如下所示:
while($row = mysql_fetch_assoc($sql)) {
var_dump($row);
}