2011-10-21 3 views
0

슬림 프레임 워크를 사용하여 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가 5입니다 학교의 세부 사항을 반환하는 함수를 만들고 싶어. 그래서 난 학교가 좀 자습서를 사용하여 내 문제가 해결이

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 방금 파리의 쉬운 기능을 사용하고 긴 오류가 발생하기 쉬운 쿼리 문자열에 대해 걱정할 필요가 없습니다, 장소에 라우터를 DELETE, PUT. :-)