2011-08-22 7 views
0

WordPerformer 플러그인 용 데이터 테이블에 데이터를 삽입하고 싶습니다. POST로 데이터를 가져옵니다. 나는 (게시물과 함께 찍은) 여러 개의 결과를 가지고 있지만, $ wpdb-> insert는 오직 나에게 마지막 결과를 삽입한다 (실제적으로 데이터를 덮어 쓴다). 그게 왜? 여기 Wordpress는 여러 행을 데이터 테이블에 삽입합니다.

내 코드입니다 :

HTML : 내가 위해 무엇을 할 수

echo '<label for="reduceri-post-category"><b>' . __("What categories should be the adverts", 'appplugin') . '</b></label><br /><br /><br />'; 
    ?> 

    <?php foreach ($the_data[categories] as $sat): ?> 
    <b> <?= $sat[name]; ?> <br /> </b> 
      <?php foreach ($sat[subcategories] as $cat): 
    ?> 

    &nbsp; &nbsp; &nbsp;<input type="checkbox" name="reduceri-post-category" value="<?= $cat[sid] ?>" /> <?php echo $cat[name]; echo $cat[sid]; ?><br /> 

    <? endforeach; ?> 
    <? endforeach; ?> 




global $wpdb; 


    $thedata['reduceri-post-category'] = $_POST['reduceri-post-category']; 


    $table_name = $wpdb->prefix . "reduceri"; 


    foreach ($thedata as $key => $value) { 
    if($post->post_type == 'revision') return; 
    if ($post->post_type == 'post'){ 

     $wpdb->insert($table_name, array('time' => current_time('mysql'), 'post' => $post->ID, 'category' => $value)); 
    } 
    } 

이 모든 결과뿐만 아니라 마지막을 삽입 할 수 있도록? 고마워요!

+0

코드를 간략하게 살펴보면 코드가 한 번만 삽입되지만 여러 번 삽입되지는 않습니다. 그리고 코드에 적절한 들여 쓰기가 도움이 될 수 있습니다. – hakre

답변

0

무엇이 reduceri-post-category입니까?

게시물에 여러 값이 있다고합니다. 이 여러 값은 플러그인에 어떻게 전달됩니까? reduceri-post-category에 여러 값이 있습니까? 각 값에 대해 별도의 키를 사용합니까? 예 : reduceri-post-category2/3/4?

$thedata.을 반복 할 때 foreach를 사용하지만 코드에서 실제로 배열을 만드는 곳은 어디에도 없습니다. $thedata. 그래서 당신의 foreach는 오직 한 번만 실행될 것이고 내부에있는 것을 기반으로 실행될 것입니다 $_POST['reduceri-post-category'];

당신이하고 싶다고 생각하는 것은이 두 시나리오 중 하나입니다.

시나리오 1 - 여러 포스트 키를 누르고 데이터

$thedata[foo1] = $_POST[foo1]; 
$thedata[foo2] = $_POST[foo2]; 
$thedata[foo3] = $_POST[foo3]; 
foreach ($thedata as $key => $value) { } 

또는 (pseudeocode)이 후 당신이 - 단일 포스트 키는 모든 종류의 데이터를 보유하고 있습니다. 그래서 그것을 분할하고 각각을 실행해야합니다.

+0

나는 내 코드를 편집하여 reduceri-post-category – dana

+0

의 기원을 추가했습니다. 같은 'name'을 가진 하위 카테고리에 대한 체크 박스를 반복하여 출력하는 것처럼 보입니다. 그들에게 다른 이름을 주어야합니다.'name = "reduceri-post-category1"''name = "reduceri-post-category2"'. 그런 다음 제공된 시나리오 1의 지시 사항을 따르십시오. – mrtsherman

+0

네,하지만 실제로 얼마나 많은 체크 박스가 검사되는지는 모르겠습니다 .. 흠 ... 어떤 제안 이요? – dana

관련 문제