Как можно получить данные из таблицы с помощью REST API - PullRequest
0 голосов
/ 21 октября 2011

Я хочу сделать API остальных в php, используя Slim Framework.

Я создал функцию для получения всех записей моей таблицы следующим образом: -

<?php

   header('Content-type: application/json');

  // Include the Slim library
  require 'Slim/Slim.php';

  // Instantiate the Slim class
  $app = new Slim();

  // Create a GET-based route
  $app->get('/', function () {
    echo "Pericent is working on Campus Concierge...";
  });

$app->get('/schools', function () 
{ 

    $sql = "SELECT * from school";

    $result = mysql_query($sql) or die ("Query error: " . mysql_error());

    $records = array();
    if (mysql_num_rows($result)==0)
     {

        echo '('.'['.json_encode(array('id' => 0)).']'.')';
     }
     else
     {
       while($row = mysql_fetch_assoc($result)) 
       {

           $records[] = $row;
       }

           echo json_encode($records);
     }

});
?>

Теперь я хочусделать функцию, которая возвращает детали школы, идентификатор которой 5 .поэтому, пожалуйста, предложите мне, как сделать функцию, чтобы я мог получить доступ к школьному задержанию, идентификатор которого указан в URL, как это

192.168.1.126/schools/:5

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Я опубликовал аналогичную информацию по вашему другому вопросу .Я настоятельно рекомендую использовать объектно-реляционное отображение для вашей базы данных.Это сделало мою жизнь супер легкой.Похоже, вы уже знаете SQL, так что вы сможете быстро его освоить.Документация солидная.Проверьте этот код, который делает то, что вы хотите. Идиорм / Париж

class School extends Model {}

$app->get('/school/:id', function($id) use ($app) {

    $school = Model::factory('School')->find_one($id);  // Paris: row with $id
    $schoolAry = $school->as_array('id', 'name', 'zip', 'numStudents');

    $response = $app->response();    // Slim Response object at work
    $response['Content-Type'] = 'application/json';

    echo json_encode($schoolAry);    // Output
});

Установив маршрутизаторы GET, POST, PUT, DELETE, вы просто используете легкие функции Парижа и вам не нужно беспокоиться одлинные строки запроса, подверженные ошибкам.: -)

0 голосов
/ 21 октября 2011

Я решил свою проблему, используя несколько учебных пособий.

Это мое решение:

$app->get('/schools/:id', function ($id) {

// Retrieve game associated with an ID of $id  
$sql = "SELECT * from school where schoolId='$id'";

$result = mysql_query($sql) or die ("Query error: " . mysql_error());

$records = array();
if (mysql_num_rows($result)==0)
 {

  echo '('.'['.json_encode(array('id' => 0)).']'.')';
 }
 else
 {
   while($row = mysql_fetch_assoc($result)) 
   {

     $records[] = $row;
   }

   echo json_encode($records);
 }
});

Надеюсь, это поможет будущим читателям.

...