Fügen Sie mehrere Einträge in die database ein, indem Sie ein Schleifenproblem verwenden

Update Ich habe das erste Problem behoben, indem ich die Strekuren beim Senden von Daten an die database ändere. Jetzt ist mein Problem, dass wenn ich mehrere Optionen auswähle und auf “Senden” klicke, nur eine der Auswahlmöglichkeiten in der database aktualisiert wird (genau die erste, die nach ID sortiert) Code ist belebe meinen alten Code, übrigens habe ich hinzugefügt

echo $cam; 

um zu verifizieren, ob seine looping korrekt und ja es tut, das einzige problem ist, dass in der datenbank es nicht alle einstellungen aktualisieren nur eines davon

Mein ursprünglicher Beitrag

Ich versuche eine benutzerdefinierte databasetabelle für mein WordPress-Plugin zu aktualisieren. Ich bekomme zuerst die Rollen von meinem Tisch und zeige sie dann mit einem Formular an. Das funktioniert gut. Wenn ich die Kontrollkästchen in der database aktualisiere, aber wenn ich sie deaktiviere, wird sie überhaupt nicht aktualisiert – und ich bekomme folgende Fehlermeldung:

Warnung: Ungültiges Argument für foreach () in C: \ wamp \ www \ wp_test \ wp-content \ plugins \ Data \ settings.php in Zeile 52 angegeben

Hier ist mein Code. Wo gehe ich falsch?

 prefix. "Author_detailed_repport"; ?> 

Settings Page

Add/Remove a role from filter list

This setting allow you to add/remove roles from the filter
list, here down a list of all the roles existing in your website, all
you have to do is to check/uncheck wich you wanna add/rmove from filter list

<form action="" method="post"> 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="" statut, $i+1); ?> />
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')); } } } ?>

AKTUALISIEREN

 prefix. "Author_detailed_repport"; ?> 

Settings Page

Add/Remove a role from filter list

This setting allow you to add/remove roles from the filter
list, here down a list of all the roles existing in your website, all
you have to do is to check/uncheck wich you wanna add/rmove from filter list

<form action="" method="post">
List of activated roles
    get_results( "SELECT * FROM ".$table_name." WHERE role= '".$rom."'" ); if ($results==NULL) {$wpdb->insert( $table_name, array( 'role' => $role['name'], 'statut' => '', 'post_number' => '', 'activate' => '' )); }?> ADR_id==$results[0]->statut) {?>
  • <input type="checkbox" value="ADR_id*2; ?>" name="rm[]" />
<form action="" method="post">
List of deactivated roles
    get_results( "SELECT * FROM ".$table_name." WHERE role= '".$rom."'" ); if ($results==NULL) {$wpdb->insert( $table_name, array( 'role' => $role['name'], 'statut' => '', 'post_number' => '', 'activate' => '' )); }?> ADR_id!=$results[0]->statut) {?>
  • <input type="checkbox" value="ADR_id; ?>" name="ad[]" />
update( $table_name, array( 'statut' => $cam ),array('ADR_id' => $cam/2),array('%d')); echo $cam; } else{ $cam='';exit();} } if(isset($_POST['add'])) { if(isset($_POST['ad'])){ $cam=implode(",",$_POST['ad']); echo $cam; $wpdb->update( $table_name, array( 'statut' => $cam ),array('ADR_id' => $cam),array('%d'));} else{ $cam='';exit(); } } ?>

Solutions Collecting From Web of "Fügen Sie mehrere Einträge in die database ein, indem Sie ein Schleifenproblem verwenden"

Ihre Variable $roles enthält entweder keinen Wert oder ist kein Array, sondern nur ein Array / Objekt.

Wenn beim Senden keine Rolle aktiviert ist, wird $ _POST [‘cat’] nicht festgelegt. Dadurch wird der Fehler “ungültiges Argument für foreach” ausgetriggers. Am Anfang deines

 if ( isset($_POST['saveme']) ) 

Struktur würde ich setzen:

 if ( !isset($_POST['cat']) ) { // code to update db value to 0 }