0

Slimフレームワークを使って、phpでrest APIを作りたいです。

次のように、テーブルのすべてのエントリを取得する関数を作成しました:-

<?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);
     }

});
?>

今私は id が5である学校の詳細を返す関数を作りたいです。だから、このようなURLで指定された学校の留置所にアクセスできるように関数を作成する方法を提案してください

192.168.1.126/schools/:5
4

2 に答える 2

0

あなたの他の質問にも同様の情報を投稿しました。DB にオブジェクト リレーショナル マッピングを使用することを強くお勧めします。それは私の人生をとても楽にしました。すでに 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 ルーターを配置したら、Paris の簡単な機能を使用するだけで、エラーが発生しやすい長いクエリ文字列について心配する必要はありません。:-)

于 2012-01-31T09:33:16.267 に答える
0

いくつかのチュートリアルを使用して問題を解決しました。

これが私の解決策です:

$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);
 }
});

これが将来の読者に役立つことを願っています。

于 2011-10-21T15:19:24.833 に答える