2016-07-22 5 views
0

私のワードプレスプラグインのカスタムテーブルを更新しようとしています。まずテーブルからロールを取得してからフォームを使用して表示します。私はそれがデータベースに更新boxsをチェックし、私はそれをオフにするとき、それはすべての更新をいけないと私はそれをすべてチェックを外した場合、私は、このエラーメッセージを取得ループフォームのチェックボックスを使用してmysql datatableを更新する

警告:Cでのforeach()のために供給無効な引数:\ WAMP \ WWW \ wp_test \ WP-コンテンツ\ライン上でのプラグイン\データ\ののsettings.php 52

<?php 
$roles=get_editable_roles(); 

global $wpdb; 
$table_name = $wpdb->prefix. "Author_detailed_repport"; 
?> 

<h3>Settings Page</h3> 
<h4>Add/Remove a role from filter list</h4> 
<p>This setting allow you to add/remove roles from the filter<br /> 
    list, here down a list of all the roles existing in your website, all<br /> 
    you have to do is to check/uncheck wich you wanna add/rmove from filter list</p> 
<form action="<?php $_REQUEST['PHP_SELF'] ?>" method="post"> 
    <?php 
require_once('../wp-config.php'); 
$i=0; 
foreach($roles as $role) 
{ 

    $rom=$role['name']; 
    $results = $wpdb->get_results("SELECT * FROM ".$table_name." WHERE role= '".$rom."'"); 
    if ($results==NULL) 
      {$wpdb->insert($table_name, array( 
            'role' => $role['name'], 
            'statut' => '', 
            'post_number' => '', 
            'activate' => '' 
            )); 
      }?> 
    <input type="checkbox" name="cat[]" value="<?php echo $i+1 ;?>" <?php checked($results[0]->statut, $i+1); ?> /> 
<input type="hidden" name="ww" value="0"> 
    <?php 


?> 
    <label> 
    <?php echo $results[0]->role;?></label><br /> 

    <?php $i++; } ?> 
    <input type="submit" value="save" name="saveme" /> 
</form> 
<?php 


if(isset($_POST['saveme'])) 
{ 
    $cats=$_POST['cat']; 
    foreach($cats as $cam) 
    { 
     if(isset($cam)) 
     { 
     $wpdb->update($table_name, array( 
            'statut' => $cam 
            ),array('ADR_id' => $cam),array('%d'));} 
     else 
     { 
      $wpdb->update($table_name, array( 
            'statut' => '0' 
            ),array('ADR_id' => $cam),array('%d')); 

      } 
    } 

} 

?> 

答えて

0

$役割はまだ、そこに設定されていないので、あなたが

If(isset($roles)) { 
//foreach loop goes in here 
} 
+0

別のチェックなし$役割を行う必要があるが、ここから問題の開始であれば(ISSET($ _ POST [「saveme」]))、正常に動作します... –

+0

Aha私は$ _POST ['cats']の簡単なチェックが必要だと思っています。 –

+0

チェックボックスをオンにすると、コードは正常に動作し、データベースに値を入れますが、チェックを外すと何も起きず、以前の値はデータベースに残ります –

関連する問題