現在の DB クエリは行を上書きします。その行の列が変更された場合に新しい行を追加しようとしています。例を示しましょう。
これが行です。post_id がその ID の新しい行のように ID を変更したとき
これは、ID が変更されたときに発生することであり、上書きされます..代わりに、作成された新しい行のような ID..
データを INSERTS して UPDATES する関数は次のとおりです。
//This is the INSERT
// Execute query
$wpdb->query(
$wpdb->prepare("INSERT INTO $table_name
(post_id, name, data, date_c, date_m)
VALUES (%d, %s, %s, %d, %d)",
'',
'',
time(),
time()
)
);
//This is the UPDATE
// DB data
$post_id = $wpdb->escape($alldata['postid']['thepostid']);
$name = $wpdb->escape($alldata['properties']['title']);
$data = $wpdb->escape(json_encode($alldata));
// Update
$wpdb->query("UPDATE $table_name SET
post_id = '$post_id',
name = '$name',
data = '$data',
date_m = '".time()."'
ORDER BY id DESC LIMIT 1");
これは送信機能です。フォームが送信されると、行が挿入または更新されます。NEW post_id INSERT NEW row ... 誰かがそのクエリを書いていくつかを与えるのを手伝ってくれることを願っていますアドバイス...
アップデート:
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" class="wrap" id="ls-slider-form">
<input type="hidden" name="submitted" value="1">
<!-- Global Settings -->
<div class="ls-page ls-post-id" style="display: block;">
<div id="post-body-content">
<div id="titlediv">
<div id="titlewrap">
<input type="text" name="thepostid" value="<?php echo the_ID() ?>">
</div>
</div>
</div>
</div>
<input type="submit" />
</form>
function brash_add_settings() {
// Add slider
if(isset($_POST['submitted'])) {
// Get WPDB Object
global $wpdb;
// Table name
$table_name = $wpdb->prefix . "brash";
// Execute query
$wpdb->query(
$wpdb->prepare("INSERT INTO $table_name
(post_id, name, data, date_c, date_m)
VALUES (%d, %s, %s, %d, %d)",
'',
'',
time(),
time()
)
);
// Empty slider
$alldata = array();
// ID
$id = mysqli_insert_id();
$alldata['properties'] = $_POST['alldata']['properties'];
$alldata['postid'] = $_POST['brash-post-id']['postid'];
// DB data
$post_id = $wpdb->escape($alldata['postid']['thepostid']);
$name = $wpdb->escape($alldata['properties']['title']);
$data = $wpdb->escape(json_encode($alldata));
// Update
$wpdb->query("UPDATE $table_name SET
post_id = '$post_id',
name = '$name',
data = '$data',
date_m = '".time()."'
ORDER BY id DESC LIMIT 1");
// Echo last ID for redirect
echo $id;
die();
}
}