Im using custom tables to make a user register page of something they've done. I'm having problems understanding wpdb and how to use it to insert the data from my html form and how to connect those files and function.
When posting my data im getting errors with
wpdb->prepare is missing 2 arguments with is line:
$redskabsID = $wpdb->get_row( $wpdb->prepare("SELECT redskabs_id FROM wp_redskaber WHERE redskabs_id = %d") );
and a error with
mysql_real_escape_string() expects parameter 1 to be string
with my insert
$registrering = $wpdb->insert(
$wpdb->prefix . 'registreringer',
array(
'dato' => new DateTime( 'now' ),
'fiske_vægt' => apply_filters('pre_register_fiske_vægt', $fiske_vægt ),
'fiske_længde' => apply_filters('pre_register_fiske_længde', $fiske_længde ),
'reg_user_id' => $current_user->ID,
'reg_redskabs_id' => apply_filters('pre_register_reg_redskabs_id', $redskabsID)
)
);
Here is the relevant info:
Table 1
CREATE TABLE $table_registreringer
(
reg_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
dato TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
fiske_vægt INT NOT NULL,
fiske_længde INT NOT NULL,
reg_user_id BIGINT UNSIGNED NOT NULL,
reg_redskabs_id INT UNSIGNED NOT NULL,
PRIMARY KEY (reg_id),
FOREIGN KEY (reg_user_id) REFERENCES wp_users(id),
FOREIGN KEY (reg_redskabs_id) REFERENCES $table_redskaber(redskabs_id)
table 2
$table_redskaber
(
redskabs_id INT UNSIGNED AUTO_INCREMENT NOT NULL,
redskabs_navn CHAR (20),
PRIMARY KEY (redskabs_id)
)
Function or the logic behind my form
<?php
if ( ! is_user_logged_in() ) {
return;
}
?>
<div class="wrapper">
<?php
global $wpdb;
if ( isset( $_POST['submit'] ) ){
$current_user = wp_get_current_user();
$fiske_vægt = trim( $_POST['fiske_vægt'] );
$fiske_længde = trim( $_POST['fiske_længde'] );
$redskabsID = $wpdb->get_result ("SELECT redskabs_id FROM wp_redskaber");
$registrering = $wpdb->insert(
$wpdb->prefix . 'registreringer',
array(
'dato' => new DateTime( 'now' ),
'fiske_vægt' => apply_filters('pre_register_fiske_vægt', $fiske_vægt ),
'fiske_længde' => apply_filters('pre_register_fiske_længde', $fiske_længde ),
'reg_user_id' => $current_user->ID,
'reg_redskabs_id' => apply_filters('pre_register_reg_redskabs_id', $redskabsID)
)
);
}
?>
and my Html form with a foreach to get everything from wp_redskaber table into my form
<form method="post">
<h3>Registering af din fangst</h3>
<p><label>længden</label></p>
<p><input type="number" value="" name="fiske_længde" id="fiske_længde" />cm</p>
<p><label>vægten</label></p>
<p><input type="number" value="" name="fiske_vægt" id="fiske_vægt" />kg</p>
<p><label>Fangst udstyr</label></p>
<?php
$results = $wpdb->get_row( "SELECT redskabs_navn FROM `wp_redskaber`" );
echo "\t<tr>\n";
foreach ( $results as $redskaber )
{
echo "\t\t<td>$redskaber->redskabs_navn</td>\n";
}
echo "<td>"
."<label>Spin <input type='radio' name='picks[$redskaber]' value='spin'></label><br>"
."<label>Flue <input type='radio' name='picks[$redskaber]' value='flue'></label><br>"
."<label>Orm <input type='radio' name='picks[$redskaber]' value='orm'></label><br>"
."</td>";
echo "\t</tr>\n";
$wpdb->show_errors();
?>
<button type="submit" name="btnregister" class="button" >Submit</button>
<input type="hidden" name="submit" value="submit" />
</form>