Einfügen von Daten in benutzerdefinierte Tabellen

Ich versuche, benutzerdefinierte Eingabetabellen zu erstellen, um Daten in benutzerdefinierten Tabellen in der WP-database zu senden. Ich kann mein Skript nichts tun. Der Benutzer gibt eine Art Alkohol wie Wodka oder Whisky ein, gibt eine Beschreibung und sendet sie an die database, wo es benutzerdefinierte Tabellen in der WordPress-database gibt. Ich habe den HTML-Code in einer WordPress-Seite und den PHP in einer Datei namens setLiquorType.php, die im WordPress-Ordner ist.

HTML-Formular

Add a New Liquor Type

Name:

Description

----------------------------------------------

Mein PHP-Skript

 prefix . "Liquor Type"; $wpdb->insert($table_name, array( 'lq_name' => $lq_name, 'description' => $lq_descrip ),array( '%s', '%d') ); } ?> 

Jede Hilfe wäre großartig

Solutions Collecting From Web of "Einfügen von Daten in benutzerdefinierte Tabellen"

Du hast gesagt, dein Formular befindet sich im Hauptordner? Ich denke, Sie müssen die richtige URL für action="" festlegen. Du könntest es versuchen:

 action="< ?php echo site_url() . '/setLiquorType.php'; ?>" 

Es empfiehlt sich, den Formularcode in functions.php zu schreiben und dann das Formular action = “” leer zu lassen. Dann können Sie Ihre Formularfunktion beim Übermitteln des Formulars auslösen.

Ihr Formular HTML:

 
//edited form action

Add a New Liquor Type

//wrapped title with

tags and removed
because h3 element will have padding that will separate it from form (if not provided in your style.css it will be assigned by the browser)

//wraping field with paragraph to generate automatic space between them without styling it //removed

element and used


//replaced unnecessary --- lines // added name attribute that will be used to check if the form is submitted

Jetzt kannst du in dir functions.php etwas hinzufügen wie:

  //setting up the form function themename_add_new_liquor() { $name = $_POST['name']; $description = $_POST['description']; //You forgot to collect data from "description" field global $wpdb; //removed $name and $description there is no need to assign them to a global variable $table_name = $wpdb->prefix . "liquor_type"; //try not using Uppercase letters or blank spaces when naming db tables $wpdb->insert($table_name, array( 'lq_name' => $name, //replaced non-existing variables $lq_name, and $lq_descrip, with the ones we set to collect the data - $name and $description 'description' => $description ),array( '%s', '%s') //replaced %d with %s - I guess that your description field will hold strings not decimals ); } } //And now to connect the two: if( isset($_POST['liquor_submit']) ) themename_add_new_liquor(); 

Ich hoffe, das kann helfen. Außerdem funktioniert das nicht, wenn Sie Ihre databasetabelle nicht an erster Stelle erstellt haben ($ wpdb-> insert function wird zum Einfügen von Daten in die vorhandene Tabelle verwendet).

Prost! 🙂