2011-11-28 34 views
2

我在這裏查看了很多關於我的問題的答案,但我似乎無法找到任何有用的東西。我正在構建一個需要通過服務器上的php腳本訪問學生類的Android應用程序。每個班級由一個存儲在mysql數據庫中的主題,主題編號和章節編號組成。我將由'\ n'字符(「subject \ nnumber」)分隔的主題和主題編號發送到php腳本,以便它可以找到並返回該課程下的所有部分。這裏是我的腳本運行的代碼:在Android中使用PHP的未定義偏移1使用PHP

$course = explode('\n', $_REQUEST['course']); 
$sections=mysql_query("select section from class where subj = '".$course[0]."' and number = '".$course[1]."' order by section"); 
while($e=mysql_fetch_assoc($sections)) 
     $output[]=$e; 
print(json_encode($output)); 

當我在主題和數量通過我的瀏覽器的東西,如

getSections.php?course=CS\n101 

它正確格式化爲一個JSON字符串,它完美的作品。但是,當我嘗試將其與我的應用程序一起使用時,第2行出現未定義的偏移量:1錯誤。我將輸入字符串包裝爲其他字符,以確保它發送的內容與我在瀏覽器中嘗試的內容相同它是。這讓我很難以理解爲什麼它不應該如此。

這也是說$輸出是未定義的,但我很確定這是因爲while循環失敗。

任何幫助將不勝感激。

+0

也許你應該使用日誌文件來看看你的應用程序真正發生了什麼。 – AsTeR

回答

1

您需要使用雙引號的爆炸\ N〜explode("\n", $_REQUEST['course']);

像換行符(\ n)轉義字符,只有在雙引號工作:

echo '\n'打印的\ n 而echo "\n"將打印新行

+0

那麼,這實際上工作。但是現在當我通過瀏覽器嘗試瀏覽器時,它給了我同樣的錯誤,我想我其實並不需要......我想這背後的原因是\ n如何在這個過程中變化? – lancex

+0

@ user105023:很高興幫助,答案有所改善。請標記爲最佳答案。 :-) – Drahcir