2012-11-19 2 views
0

데이터베이스의 양식에서 정보를 저장하고 해당 정보를 편집 할 수있는 PHP로 매우 간단한 webapp를 만들고 있습니다.데이터베이스 삽입 스크립트 재사용 또는 다시 작성

나는 형식이 있고 데이터베이스에 정보를 저장하는 것은 훌륭합니다.

<?php 
require_once 'connect.php'; 
$firstName = $_POST['firstName'];  //other variables ommited for brevity 

$sth = $dbh->prepare("INSERT INTO users(firstName, lastName, country, roomtype, roomnumber, checkin, nights) 
VALUES ('$firstName', '$lastName', '$country', '$roomtype', '$roomnumber', '$checkin', '$nights')"); 
$sth->execute(); 

$dbh =null; 
?> 

은 내가 양식 필드에 데이터베이스에서 값을 읽을 편집 페이지를 가지고 다음과 같이 (이 질문에 대한 단축 된 후) 내 양식에서 데이터베이스에 정보를 저장하기 위해 사용하는 코드입니다.

그러나 변경된 경우 데이터베이스에 새 레코드를 추가하는 대신 기존 레코드를 업데이트하고 싶습니다.

나는 데이터베이스에 정보를 업데이트하기 위해 데이터베이스에 삽입하는 데 사용하는 동일한 PHP 페이지 (process.php)를 사용해야하며, 호출 방법을 확인할 수도 있고 새로운 별도의 페이지를 만들어야 할 수도 있습니다. 업데이트 작업.

더 나은 접근 방법은 무엇입니까? 나는 데이터베이스에 데이터를/삭제 추가/편집 동일한 페이지를 사용하고 스위치 케이스를 사용하는 것이 좋습니다 것

답변

1

을하는 데 도움이

//get the action to be performed like add or edit 
$action = strtolower(trim($_POST['action'])); 
switch($action) { 
    case "add": 
     //call function to insert to db 
     yourFunctionToInsert(); 
    break; 
    case "edit": 
     //call function to edit 
     yourFunctionToEdit(); 
    break; 
    default: 
     //some default code in case no valid action is encountered 
} 

function yourFunctionToInsert() { 
    //code to insert to DB 
} 

function yourFunctionToEdit() { 
    //code to update the DB 
} 

희망 고유 한 id, 해당 ID를 사용하면 같은 페이지에서 해당 작업을 수행 할 수 있습니다.

if(empty($_POST['id'])) { 
     //insert operation 

}elseif(!empty($_POST['id'])){ 
     //update operation 
} 
0

같은 : 당신이해야합니다 업데이트의

관련 문제