2012-12-09 3 views
0

약간의 문제가 있습니다. 확인란을 사용하여 데이터를 저장하려고 시도하고 있지만 그럴 수 없습니다. 지금은 같은 이름을 가진 여러 개의 체크 박스를 모두 보여줄 수있는 스크립트를 만들었습니다. 그래서 내 질문은 지금, 어떻게 그들을 별도로 만드는 데이터를 보낸 페이지를 만들 수 있습니까? like :mysql의 확인란을 사용하여 데이터 저장 및 삭제

<input type='checkbox' checked name='cpu-link[]' value='1' /> 
<input type='checkbox' checked name='cpu-link[]' value='2' /> 
<input type='checkbox' checked name='cpu-link[]' value='3' /> 

mysql 데이터베이스의 새 행에 각 확인란마다 어떻게 저장하나요? 1

  • 데이터 2
  • 데이터 3
  • 그리고 내가 관련 qestion이가, 내가 어떻게 그렇게 확인란이이 아니라고해야합니까

    1. 데이터 : 같은 은 그래서 것 checked가 이미 데이터베이스에 있으면 제거됩니다. 그래서 경우는 다음과 같이이다 :

      <input type='checkbox' checked name='cpu-link[]' value='1' /> 
      <input type='checkbox' name='cpu-link[]' value='2' /> 
      <input type='checkbox' name='cpu-link[]' value='3' /> 
      

      그런 다음 ID 2, 3이 제거 얻을 것이다하지만, ID 1 행과 행이 생성 얻을 것이다하거나 이미 데이터베이스에있는 경우 그냥있어.

      두 테이블간에 모두 일종의 링크입니다. 나는 PC가있는 테이블과 하드웨어가있는 테이블을 가지고 있습니다. 그러면 링크가있는 테이블이 있습니다. 컴퓨터에서 벌을해야하는 하드웨어를 선택하면 링크 테이블에 행이 만들어집니다 그래서 내가 PC를 표시 할 때, 그것은 그 하드웨어의 힘으로 보여줍니다.

      죄송합니다. 미리 감사드립니다.

    답변

    0
    $all_cpu_links = array(); // here is your array with all possible values of cpu-link 
    $previously_checked = array(); // array of values that are already in your database 
    $to_be_removed = array(); 
    $to_be_inserted = array(); 
    
    // It is better to use here here a prepared statement by the way 
    foreach ($_POST['cpu-link'] as $cpu_link) 
    { 
        if (!in_array($cpu_link, $previously_checked)) 
        { 
         // validate $cpu_link here 
         mysql_query("INSERT INTO table (`cpu_link`) VALUES (".$cpu_link.");"); 
        } 
    
    } 
    
    foreach ($all_cpu_links as $cpu_link) 
    { 
        if (!in_array($cpu_link, $_POST['cpu-link']) && in_array($cpu_link, $previously_checked)) 
         $to_be_removed[] = $cpu_link; 
    } 
    
    mysql_query("DELETE FROM table WHERE `cpu_links` IN (".implode(' ,', $to_be_removed).");"); 
    
    +0

    데이터베이스에서 삭제해야 할 데이터는 어디에서 찾을 수 있습니까? 나는 $ already_checked로 배열을 만들었다는 것을 알 수있다. 삭제할 필요가있는 $ id를 이전에 확인한 곳을 볼 수 없다. – Coookkiiee

    +0

    나는'$ earlier_checked'에 ID를주지 않습니다. 나는'$ to_be_removed'에 – Hast

    +0

    작업을 수행합니다. cpu_link는 어떤 데이터도받지 않습니다. 나는 그것에 데이터를 보낸 후 $ cpu_link를 echo하려고 시도했으나 아무 것도 echo하지 않았다. 그리고 마지막 mysql_query에 오류가있다. ')'at line 1 – Coookkiiee

    관련 문제