Использование JSON и SQL для мобильного приложения - PullRequest
3 голосов
/ 23 августа 2011

Я пытаюсь сделать мобильное приложение, используя jQuery Mobile и Phonegap.Но прежде всего я хотел бы сказать, что я не профессиональный программист;Я всего лишь студент, пытающийся понять основы мобильного приложения.У меня есть некоторый опыт работы с HTML и PHP.Поэтому я пытаюсь изучить некоторые основы мобильного приложения;Я пробовал это раньше, но из-за нехватки времени у меня не было времени исследовать проблему, с которой я столкнулся в то время.

То, что я пытаюсь реализовать, довольно просто: у меня есть база данных SQL с: names (1), где они работают (2) и description (3).Все они имеют уникальный идентификатор - 4 таблицы.Первое, что я хотел бы извлечь из базы данных, это их имена в зависимости от того, где они работают.

Я попытался следовать нескольким учебным пособиям, руководствам и прочитать некоторые другие материалы.Это то, что я придумал.Это PHP-файл, размещенный на сервере.

  <?

include 'includes/db.php';

$sql = mysql_query("SELECT name FROM work");

$array = Array();


if(mysql_num_rows($sql) > 0)
{
    for($i=0; $i < count($sql); $i++){
         $rec = mysql_fetch_assoc($sql);
        $array[name] = $rec['name'];                   
    }

    echo json_encode($array);
}

?>

Когда я открываю этот PHP-файл, я получаю результат обратно из базы данных, отформатированной в формате JSON.Но я получаю только одно имя взамен, в то время как в этой базе данных больше имен.

Далее я бы пошел и поместил код jQuery в приложение jQuery-Mobile, например:

<script type="text/javascript">
        $(document).ready(function(){

            $.getJSON('names.php', function(data){
                $("#namesDiv").html(data);

            });

        });
</script>

Конечно, это ничего не возвращает;это я все еще пытаюсь выяснить, как отобразить все имена в виде списка в файле HTML.Но после этого я хочу иметь возможность нажать на имя из этого списка и получить описание от этого человека на следующей странице.Я знаю, что в PHP вы можете получить идентификатор из URL (page.php? Id = 1) и затем передать его в своем запросе, чтобы получить правильные данные;но как это можно сделать, когда JSON управляет всем?

Я надеюсь, что кто-нибудь может мне помочь;Я знаю, что спрашиваю много, и что мои знания, возможно, недостаточны, но я был бы очень признателен за любую помощь, которую я могу получить.

Ответы [ 2 ]

0 голосов
/ 23 августа 2011
jQuery.getJSON( url, [data], [success(data, textStatus, jqXHR)] )

url: A string containing the URL to which the request is sent.

data: A map or string that is sent to the server with the request.

success: (data, textStatus, jqXHR)A callback function that is executed if the request succeeds.

вы можете отправить id как

$.getJSON("names.php",{id:id)},function(json){

//do what ever you want with json

});

и в вашем names.php сделать

$id=$_GET['id'];

часть запроса

$temp = array();
$sql = mysql_query("SELECT name FROM work"); 

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

if(empty($temp))
   $temp=array($row['name ']);
else    
   array_push($temp,$row['name ']);    
}
echo (json_encode($temp));
0 голосов
/ 23 августа 2011

Вы делаете это:

$sql = mysql_query("SELECT name FROM work");
...
count($sql)

Прочтите страницу руководства для mysql_query(), вы увидите, что она не возвращает массив со строками, а возвращает ресурс . В цикле вместо этого необходимо проверить возвращаемое значение mysql_fetch_assoc().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...