2013-07-04 1 views
-1

내가 그것을 인쇄 할 때 포스트 배열을 만들었습니다, 나는 다음과 같은 결과를 얻고 있습니다. 배열의 키는 내 데이터베이스와 값의 열 이름입니다동적 방법으로 PHP에서 배열을 사용하여 MySQL을 업데이 트하는 방법

Array ( [name] => gowtham [content] => Nice Website )

은 데이터베이스에있는 값입니다. 이 값을 사용하여 데이터베이스를 업데이트하려고하지만 post 배열의 값은 html 형식을 기반으로 변경됩니다.

나는 implode를 사용하여 문자열을 만들었습니다.

$query ="UPDATE ".$_SESSION['table']." SET ".implode(' = ',$array);

하지만 내 출력이

UPDATE testimonials SET gowtham = Nice Website

이다 나는

UPDATE testimonials SET name = gowtham , content = Nice Website

나에게

+3

왜 당신이 세션에서 테이블 이름을 보관하지 이런 식으로 시도? –

+0

포스트 변수를 통해 전송 한 경우 배열의 포이트가 손상 될 수 있습니다 –

+0

O.o @GowthamRajVungarala HOW? 어디에서 읽거나 배울 수 있습니까? –

답변

0

뭔가 당신이 실행하기 전에 버튼을 제출하면 설정 해제해야 할 수 있습니다 주목할 가치가이

$update = ''; 
$i = 0; 

foreach ($_POST as $key => $value) { 
    $update = $key . ' = "' . $value . '"' . ($i == count($_POST) ? ', ' : ''); 
    $i++; 
} 

$query ='UPDATE ' . $_SESSION['table'] . ' SET ' . $update; 

같은 : 나는 다음과 같은 사용 .... 당신이 물건을 처리하는 DB 클래스를 사용하는 것이 좋습니다 루프를 실행하고 ID로 업데이트해야하는 경우 루프에서이를 건너 뛰고 where 절을 별도로 수행해야합니다. if 문은 아마도 가장 쉽습니다.

또한 PHP에서 mysql_ * 함수는 버전 5.5에서 감가 상각되므로 PDO 또는 mysqli를 사용해보십시오.

PS - 나는 데이터의 일부를 삭제하지 못했지만 반드시해야합니다!

+1

구문 오류 : 'UPDATE'. $ _ SESSION [ 'table']. "SET. '. $ update' 연결이 잘못되었습니다 ... – naththedeveloper

+0

잘 봤어! 편집 됨 –

1

$cols=array_keys($yourarray); 
$cols=array_values($yourarray); 
$colnames = "`".implode("`, `", $cols)."`"; 
$colvals = "`".implode("', '", $vals)."`"; 
$query="update tablename set ($colnames) values ($colvals)"; 
관련 문제