何千ものアイテムを含む外部データベースからデータを読み取る必要があります。これまでに行ったことは、すべての項目を返す php クエリを作成してから、それらを JSON で解析することです。このような:
php:
$stmt = $conn->prepare("SELECT COMMENT_ID, USERNAME, COMMENT, DATE, LINK, NOW() AS SERVERTIME FROM COMMENTROOM ORDER BY DATE DESC");
$stmt -> execute(array($link));
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
$output[] = $row;
}
print(json_encode($output));
アンドロイド:
JSONArray jArray = new JSONArray(commentResult);
for(int i=0;i<jArray.length();i++){
JSONArray innerJsonArray = jArray.getJSONArray(i);
for(int j=0;j<innerJsonArray.length();j++){
JSONObject jsonObject = innerJsonArray.getJSONObject(j);
if (jsonObject.getString("LINK").equals(GlobalVars.getLINK_FOR_COMMENT())){
Comment.add(jsonObject.getString("COMMENT"));
}
}
}
これはうまく機能しますが、特にテーブルに数万のアイテムが含まれている場合、これは効果的ではないと思います。どういうわけか、変数をphpクエリに渡したいlink
ので、選択プロセスはJSON解析ではなくSQLによって行われますが、これは非常に遅くなります。新しいphp:
$link = $_POST['link'];
try {
$stmt = $conn->prepare("SELECT COMMENT_ID, USERNAME, COMMENT, DATE, NOW() AS SERVERTIME FROM COMMENTROOM WHERE LINK=? ORDER BY DATE DESC");
$stmt -> execute(array($link));
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
$output[] = $row;
}
print(json_encode($output));
link
私の質問は、アンドロイドからこの php クエリに変数を渡すにはどうすればよいですか?クエリは適切なアイテムのみを返し、結果を解析する必要はありません。
前もって感謝します!