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
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
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:
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! 🙂