我创建了这个简单的函数来更新名为wp_todos
function update_completed_todos($id,$complete) {
global $wpdb;
$table_name = $wpdb->prefix . 'todos';
$result = $wpdb->get_results("SELECT id FROM " . $table_name . " WHERE id = '" .$id."'");
if (count ($result) > 0) {
$wpdb->update(
$table_name,
array(
'complete' => $complete,
),
array( 'id' => $id )
);
}
}
它只传递了两个变量:$id
和$complete
。
然后我创建了一个foreach
循环:
$todos = $wpdb->get_results("SELECT * FROM " . $table_name);
foreach ($todos as $key => $value) {
<input id="<?php echo $value->id; ?>" type="submit" onclick="<?php update_completed_todos($value->id, 1); ?>" value="<?php esc_attr_e( 'Done' ); ?>" />
}
如您所见,它应将"1"
提交到特定行中的特定列complete
。
这里的问题是,当我单击按钮时,它会影响表中的所有行而不是目标的一行。换句话说,它使整个列complete
取值为&#34; 1&#34;。