2011-10-21 18 views
0

Slimフレームワークを使用してPHPで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がある学校の詳細を返す関数を作りたいです。私はいくつかのチュートリアルを使用して私の問題を解決し、私はこの

192.168.1.126/schools/:5 

答えて

0

のようなURLで指定されたID拘留学校にアクセスできるように機能させることができる方法を私に提案してください。

これは私のソリューションです:

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

私は、これは将来の読者を助けることを願っています。

0

私はあなたの他のquestionに同様の情報を掲載しました。私は非常にあなたのDBのもののオブジェクトリレーショナルマッピングを使用することをお勧めします。それは私の人生を超簡単にしました。あなたはすでにSQLを知っているように思えるので、簡単にそれを拾うことができます。ドキュメントは堅実です。あなたが望むことをするこのコードをチェックしてください。 Idiorm/Paris

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を持って、所定の位置にルータを削除すると、あなただけのパリの簡単な機能を使用すると、あなたは長いエラーが発生しやすいクエリ文字列を心配する必要はありません。 :-)

関連する問題