2012-04-03 2 views
0

Попытка сделать управляемый вывод для Android для преобразования $ output в JSONObjects. Когда я использую прокомментированную нижнюю строку, он получает данные в журнале Android просто отлично, но не может преобразовать JSONArray в JSONObject - таким образом, желание цикла foreach возвращать каждую строку SQL самостоятельно. Я не вижу никаких синтаксических проблем, поэтому я не знаю, о чем PHP жалуется - какие-то идеи? Кроме того, когда я использую прокомментированный код печати, он возвращает правильные результаты, поэтому я знаю, что нет проблем с доступом к db. Вот код:Кажется, что цикл цикла Foreach имеет синтаксическую ошибку?

<?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 

ответ

2

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

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

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

ошибка, однако, outpu t неверно. Когда на веб-странице я получаю «ArrayArray», отображается один раз. Я изменил эхо-строку для печати (json_encode ($ value)); используя ваш предложенный синтаксис и распечатывая содержимое таблеток. Благодаря! Я отвечу как можно скорее. – Davek804

2

Вы пропускаете присвоение значения в цикле Еогеасп.

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

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

См PHP - foreach

+0

Yep один человек выше всего этого, и это решение. Я также просмотрел эту страницу, чтобы узнать, как делать PHP для каждого цикла, но неправильно истолковал, как выглядели бы параметры! Благодарю. – Davek804

1

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

while($row=mysql_fetch_assoc($sql)) 

В случае, если до:

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

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

while($row = mysql_fetch_assoc($sql)) {   
    var_dump($row); 
} 
+0

Я добавил в начало и конец скобки для цикла while (предположил, что он не нужен, так как в цикле была только одна строка/операция. Однако не удастся добавить их. Спасибо! – Davek804

+0

Ya your right Я не понимал этого, пока не посмотрел на него ближе. Я давно не делал этого, поэтому я не стал путать себя. –

+0

Я все еще не думаю, что вам нужен внутренний цикл foreach, но вы можете получить доступ в данных $ row. Если вы не пытаетесь сделать что-то еще? –

Смежные вопросы