Цикл foreach, кажется, имеет синтаксическую ошибку? - PullRequest
0 голосов
/ 03 апреля 2012

Попытка сделать управляемый вывод для 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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

вам нужно использовать ключевое слово as и assign каждое значение в переменной (здесь значение $). Затем echo эта переменная.

как показано ниже:

foreach($output as $value) {
echo $value;
}
2 голосов
/ 03 апреля 2012

Вам не хватает присвоения значения в цикле foreach.

Вместо foreach($output) вам нужно сделать что-то вроде этого:

foreach($output as $value) {
    echo $value;
}

См. PHP - foreach

1 голос
/ 03 апреля 2012

Похоже, вам не хватает открывающей фигурной скобки для цикла while:

while($row=mysql_fetch_assoc($sql))

Должно быть:

while($row=mysql_fetch_assoc($sql)) {

Кроме того, вам не нужен внутренний цикл foreach, у вас должен быть доступ к данным строки через переменную $row, заполненную в цикле while, например:

while($row = mysql_fetch_assoc($sql)) {        
    var_dump($row);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...