2012-05-17 6 views
0

기본 작업이 MySQL 테이블에서 나열된 콘텐츠를 승인하는 간단한 응용 프로그램을 작성 중입니다. 목록 항목은 15-20 개 항목과 같이 길다. 목록 항목에 체크 박스를 넣고 사용자가 여러 항목을 확인하고 제출 버튼을 클릭하여 선택한 항목을 승인 할 수있게하려고합니다.확인란을 사용하여 PHP에서 여러 쿼리를 만드는 방법?

나는 승인 또는 비 승인을 위해 0 또는 1로 설정하기 위해 테이블에 기본 플래그 열을 만들었습니다. 기존 시스템 사용자는 링크를 클릭하고 특정 페이지로 이동하여 승인을 클릭하여 항목을 승인해야합니다. 사용자가 확인란을 선택하고 여러 항목을 선택하여 항목을 하나씩 승인하도록 허용하여 프로세스를 단축하고 싶습니다. 시각.

enter image description here

이 내 테이블이며 좋은 그/그녀가 체크 상자를 선택하여 승인 할 수있는 경우 항목은 관리자가 비디오를 볼 수 있도록 YouTube 링크입니다. 여기

는 항목

<?php 
$msg = ""; 
$idForm = $_GET['id']; 

if(isset($_POST['submit'])){ 
    $msg= approveVideo($idForm); 
} 
?> 

에게 approveVideo 기능을 승인 할 특정 현재 페이지의 PHP 코드 :

function approveVideo($id) { 
    $message =""; 
    $query= "UPDATE locus_videos SET set_flag='1' WHERE id='{$id}'"; 

    if(mysql_query($query)) { 
     $message ="Video Approved "; 
    }else { 
     die("failed: " . mysql_error());  
    } 

    return $message; 

} 

PHP 파일에 대한 표 형식 :

<table width="100%" height="487" border="0" cellpadding="5" cellspacing="5"> 

> "10 "방법 = "POST">

<table width="100%" border="0" cellspacing="5" cellpadding="5"> 

업 로더 이름 비디오 링크

"> "대상 = "_ 빈사용자가이 특정 페이지로 리디렉션 거기에서 단지 그가 비디오 (유튜브 링크)를 승인 할 수있는 비디오의 링크를 클릭

</form> 
</td> 

내 현재 버전에서

+1

이 프로젝트에서 PHP를 사용하지 않았습니까? 그렇다면 관련 부분을 보여주십시오. 그렇지 않다면 기본 PHP + HTML 양식 자습서를 찾아보십시오. –

+0

이것은 phpmyadmin의 스크린 샷입니다 – mishu

+0

@mishu 저는 이것이 그가하려고하는 것의 예라고 생각합니다 – pomeh

답변

2

행을 "승인"하거나 행을 "승인"하고 "승인하지 않으려는 경우"에 따라 두 가지 방법이 있습니다.

첫째 : 당신이 볼 수 있듯이, 이름의 체크 박스가

<table> 
    <thead> 
     <tr> 
      <td>&nbsp;</td> 
      <td>Url</td> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td><input type="checkbox" name="Approve[]" value="1" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
     <tr> 
      <td><input type="checkbox" name="Approve[]" value="2" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
     <tr> 
      <td><input type="checkbox" name="Approve[]" value="3" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
    </tbody> 
</table> 

은 "[] 승인"각 행에 대해 다른 값입니다. 값은 테이블의 ID 열입니다.

function approveVideos($ids) 
{ 
    $message = ''; 
    $query = 'update locus_videos set set_flag = 1 where id in (' . implode(',', $ids) . ')'; 
    if(mysql_query($query)) 
    { 
     $message ="Videos Approved "; 
    } 
    else 
    { 
     die("failed: " . mysql_error());  
    } 
    return $message; 
} 


$ids = $_POST['Approve']; 
approveVideos($ids); 

둘째 : 당신의 PHP 내에서

, 당신은 다음을 사용

function setVideoFlag($id, $flag = 1) 
{ 
    $message = ''; 
    $query = 'update locus_videos set set_flag = ' . $flag . ' where id = ' . $id; 
    if(mysql_query($query)) 
    { 
     $message ="Video " . ($flag == 1 ? 'Approved' : 'Disapproved'); 
    } 
    else 
    { 
     die("failed: " . mysql_error());  
    } 
    return $message; 
} 

foreach($_POST['Approve'] as $id => $flag) 
{ 
    setVideoFlag($id, $flag); 
} 

나는 희망 :

<table> 
    <thead> 
     <tr> 
      <td>&nbsp;</td> 
      <td>Url</td> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td><input type="hidden" name="Approve[1]" value="0" /><input type="checkbox" name="Approve[1]" value="1" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
     <tr> 
      <td><input type="hidden" name="Approve[2]" value="0" /><input type="checkbox" name="Approve[2]" value="1" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
     <tr> 
      <td><input type="hidden" name="Approve[3]" value="0" /><input type="checkbox" name="Approve[3]" value="1" /></td> 
      <td>http://www.youtube.com/...</td> 
     </tr> 
    </tbody> 
</table> 

을 PHP 내에서 다음을 수행 할 그게 도움이 되니?

개빈

+1

대단히 감사합니다. 그게 많이 도움이 – monk

+1

자세한 코드에 대한 개빈에 +1 :) – verisimilitude

2

매우 쉽습니다. 승인하려는 각 콘텐츠에 대한 확인란의 배열 (아래)이 필요합니다. 이제 위의 체크 박스가 캡슐화 될 콘텐츠 ID

<input type="checkbox" id="chk_1" name="**band[]**" value="ABC" /> ABC <br/> 
<input type="checkbox" id="chk_2" name="**band[]**" value="PQR" /> PQR <br/> 
<input type="checkbox" id="chk_3" name="**band[]**" value="XYZ" /> XYZ <br/> 

각 체크 박스의 값에 넣습니다. 양식을 제출하고 게시 어레이를 검사 할 때 (즉. $ _POST)는

어레이 ( "밴드"=> 어레이 ( "0"=> ABC, 1 => PQR로 항목을 가질 것이다. ); );

php의 implode 함수를 사용하여 이것을 쉼표로 구분 된 PHP 문자열로 변환하고이 문자열을 Update 쿼리의 WHERE 절의 IN 절에 전달하십시오.

두 가지가 중요합니다.

1) 위 샘플에서 사용한대로 확인란의 배열을 사용해야합니다.

2) 체크 박스의 값 속성을 콘텐츠 ID 또는 콘텐츠 테이블의 기본 키가 무엇이든 설정해야합니다. 희망이 도움이됩니다.

+0

이러한 반환 값은 ID 번호이므로 ID와 같은 ID 안에 넣어야합니다. WHERE id = '1,2,3' – monk

+0

아니요. 어디에서 id (1,2,3). Gavin의 솔루션을 사용해보십시오.하지만 코드/구현과 동기화됩니다. – verisimilitude

관련 문제