Мой Logcat показывает мне (правильно) все сообщения, которые я хочу вернуть, но когда я прошу код отображать одно и то же на другой php-странице, он становится совершенно неудачным.
Обратите внимание, что это код, $ from = "r" и $ to = "".
Вот мой код:
<?php session_start(); /* connect to database */ $db = mysql_connect("localhost", "root", "root"); if (!$db) die('could not connect'); mysql_select_db('androidp2p') or die("could not select database"); /* variables */ $from = mysql_real_escape_string($_POST['from']); $to = mysql_real_escape_string($_POST['to']); $message = mysql_real_escape_string($_POST['message']); /* conditional code */ if (isset ($POST['to'])) { /* user wants to send a message */ $query = "INSERT INTO messages (fromuser, touser, message) VALUES ('$from', '$to', '$message')"; mysql_query($query) or die("\n\ndatabase error!\n". mysql_error()); echo "ok. Messages have been saved."; } else //if (!isset ($POST['to'])) { /* user wants to retrieve his messages */ $query = "SELECT * FROM messages WHERE touser='$from'"; /* echo test 1 */ echo $query; $result = mysql_query($query) or die("\n\ndatabase error!\n". mysql_error()); $mailbox = array(); while($row = mysql_fetch_assoc($result)) { $mailbox[] = $row; } /* echo test 2 */ echo "{ \"mailbox\":".json_encode($mailbox)." }"; $name = "{ \"mailbox\":".json_encode($mailbox)." }"; $_SESSION['myValue']=$name; } ?>
На странице 2 (test.php):
<?php session_start(); echo $_SESSION['myValue']; ?>
Вот записи в db:
Это мой logCat:
I / RESPONSE (4591): SELECT * FROM сообщений WHERE touser = 'r'
I / RESPONSE (4591): {«почтовый ящик»: [{«id»: «117», «fromuser»: «qw», «touser»: «r», «message»: «zx», «timestamp»: "2013-04-13 01:30:59"}]}
Теперь, выше, я хочу, чтобы вы увидели, что touser – r. Эта запись (в db) – это то, что я хотел вернуть, то есть все записи, в которых поле «touser» содержит значение «r».
Теперь это моя страница test.php:
{"почтовый ящик": [{"id": "132", "fromuser": "r", "touser": "", "message": "", "timestamp": "2013-04-13 15:45 : 03 "}, {" id ":" 123 "," fromuser ":" r "," touser ":" "," message ":" "," timestamp ":" 2013-04-13 13:41: 23 "}, {" id ":" 122 "," fromuser ":" r "," touser ":" "," message ":" "," timestamp ":" 2013-04-13 13:30:53 "}, {" id ":" 133 "," fromuser ":" "," touser ":" "," message ":" "," timestamp ":" 2013-04-13 15:45:21 "} ]}
Редакция:
Как вы могли видеть, он возвратил все записи пользователя, которые были пустыми (или нулевыми). Моя интерпретация этого поведения заключается в том, что во время работы кода переменная $ from является фактически «r» (и поэтому она корректно сохраняется в logcat), но после выполнения кода в настоящее время нет значения в $, поэтому просто выводит результат для $ from = null.
Должен ли php делать это? Я думал, что какой бы код не был выполнен и не повторился в то время, он был бы выведен на страницу и оставался там, пока я не запустил код. Любые предложения по устранению этого?
РЕДАКТИРОВАНИЕ
Суть всего в том, чтобы использовать код JSONParser, который я получил отсюда , чтобы получить определенные строки из базы данных и поместить их в базу данных Android в определенные поля. Я пробовал модифицировать код JSONParser, чтобы использовать BackgroundTask, как это , и вы можете взглянуть на это .
Это то, чего пытается достичь проект: первый пользователь может отправить сообщение серверу db, в котором содержится 'from' (который будет номером ячейки пользователя1), 'to' (который будет номером адресата или пользователя2) и сообщение (которое является его местоположением). Второй пользователь использует службу опроса для периодического извлечения своих сообщений из базы данных, то есть всех записей в базе данных, где его номер будет находиться в поле «Кому», и хранить эти записи в базе данных на своем телефоне (и автоматически удалять эти записи из сервер db). Я думаю, что все работает в основном, за исключением той части, где я получаю определенные записи из db сервера.
Я решил использовать JSONParsing, потому что он может взять массив записей db и сделать строку из каждой записи, что упростит хранение в db моего Android. Но это то, где ему не хватает …, чтобы найти способ получить определенные записи db. Я не понял способ сделать это. Любая помощь, чтобы указать мне в правильном направлении?