Php 在wordpress数据库中添加带有数据的自定义行
我无法在WordPress数据库的wp_usermeta中添加新行。 我的插件中有这段代码,我访问数据库并尝试将数据存储在管理仪表板的表单中。 我有以下代码:Php 在wordpress数据库中添加带有数据的自定义行,php,wordpress,Php,Wordpress,我无法在WordPress数据库的wp_usermeta中添加新行。 我的插件中有这段代码,我访问数据库并尝试将数据存储在管理仪表板的表单中。 我有以下代码: function kpam_application_management_Users() { global $wpdb; $results = $wpdb->get_results("SELECT * FROM wp_users"); echo ' <h2>Applicants</
function kpam_application_management_Users()
{
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM wp_users");
echo '
<h2>Applicants</h2>
<table style="margin-left:10px;margin-top:10px;">
<tr>
<th>ID</th>
<th>Username</th>
<th>Email</th>
<th>Progress</th>
</tr>';
foreach( $results as $user_data) {
echo "<tr>
<td>$user_data->ID</td>
<td>$user_data->user_nicename</td>
<td>$user_data->user_email</td>
<form method=POST action=>
<td><input type=number name=progressz>
<button id=btnConfirm type=submit name=button >Update</button>
</td>
</form>
</tr>";
}
echo '</table> <br><br>';
if ( isset( $_POST['button'] ) ){
global $wpdb;
$tablename = $wpdb->prefix.'usermeta';
$wpdb->insert( $tablename, array(
'user_id' => 1,
'meta_key' => 'progress',
'meta_value' => $_POST['progressz']),
array( '%s','%s','%s')
);
}
}
功能kpam\u应用程序\u管理\u用户()
{
全球$wpdb;
$results=$wpdb->get_results(“选择*来自wp_用户”);
回声'
申请人
身份证件
用户名
电子邮件
进展
';
foreach($user\u数据形式的结果){
回声“
$user\u data->ID
$user\u data->user\u name
$user\u data->user\u电子邮件
更新
";
}
回音“
”;
如果(isset($_POST['button'])){
全球$wpdb;
$tablename=$wpdb->prefix'usermeta';
$wpdb->insert($tablename,array)(
“用户id”=>1,
“meta_key”=>“progress”,
“meta_值”=>$u POST['progressz']),
数组('%s','%s','%s'))
);
}
}
有几件事:
首先,为什么要为此运行$wpdb
查询,而不是使用WordPress的帮助函数(如或类)和函数来存储提交的信息
其次,您应该确保您的代码以标准语法正确格式化,以便更容易更新和维护(而不是像那样重复巨大的HTML块)-未来谢谢
第三,您是否正在运行if(isset($\u POST['button']){
代码?您可能应该将它挂在某个地方,并使用其中一个函数,而不是依赖任意一个通常命名的按钮
也就是说,我已经对它进行了一些清理,并使用了helper函数,但类似这样的功能应该可以让您更接近您所要查找的内容:
function kpam_application_management_users(){ ?>
<h2>Applicants</h2>
<table style="margin-left:10px;margin-top:10px;">
<tr>
<th>ID</th>
<th>Username</th>
<th>Email</th>
<th>Progress</th>
</tr>
<?php
$users = get_users();
foreach( $users as $user ){ ?>
<tr>
<td><?php echo $user->ID; ?></td>
<td><?php echo $user->user_nicename; ?></td>
<td><?php echo $user->user_email; ?></td>
<td>
<form method="POST">
<input type="hidden" name="user_id" value="<?php echo $user->id; ?>" />
<input type="number" name="progressz" placeholder="<?php echo get_user_meta( $user->ID, 'progressz', true ); ?>" />
<button id="btnConfirm" type="submit" name="progressz-submit">Update</button>
</td>
</form>
</tr>
<?php }
?>
</table>
<?php }
if( isset( $_POST['progressz-submit'] ) ){
update_user_meta( $_POST['user_id'], 'progressz', $_POST['progressz'] );
}
function kpam\u application\u management\u users(){?>
申请人
身份证件
用户名
电子邮件
进展
有几件事:
首先,为什么要为此运行$wpdb
查询,而不是使用WordPress的帮助函数(如或类)和函数来存储提交的信息
其次,您应该确保您的代码以标准语法正确格式化,以便更容易更新和维护(而不是像那样重复巨大的HTML块)-未来谢谢
第三,您是否正在运行if(isset($\u POST['button']){
代码?您可能应该将它挂在某个地方,并使用其中一个函数,而不是依赖任意一个通常命名的按钮
也就是说,我已经对它进行了一些清理,并使用了helper函数,但类似这样的功能应该可以让您更接近您所要查找的内容:
function kpam_application_management_users(){ ?>
<h2>Applicants</h2>
<table style="margin-left:10px;margin-top:10px;">
<tr>
<th>ID</th>
<th>Username</th>
<th>Email</th>
<th>Progress</th>
</tr>
<?php
$users = get_users();
foreach( $users as $user ){ ?>
<tr>
<td><?php echo $user->ID; ?></td>
<td><?php echo $user->user_nicename; ?></td>
<td><?php echo $user->user_email; ?></td>
<td>
<form method="POST">
<input type="hidden" name="user_id" value="<?php echo $user->id; ?>" />
<input type="number" name="progressz" placeholder="<?php echo get_user_meta( $user->ID, 'progressz', true ); ?>" />
<button id="btnConfirm" type="submit" name="progressz-submit">Update</button>
</td>
</form>
</tr>
<?php }
?>
</table>
<?php }
if( isset( $_POST['progressz-submit'] ) ){
update_user_meta( $_POST['user_id'], 'progressz', $_POST['progressz'] );
}
function kpam\u application\u management\u users(){?>
申请人
身份证件
用户名
电子邮件
进展
属性声明周围没有引号。我尝试过,但仍然不起作用。您的结束表单标记不正确。应该是:
。您如何将表单数据发送到php文件?即使这样也不起作用。您如何将表单数据发送到php文件?请显示更多相关代码。有e属性声明周围没有引号。我试过了,但仍然不起作用。您的结束表单标记不正确。应该是:
。您如何将表单数据发送到php文件?即使这样也不起作用。您如何将表单数据发送到php文件?请显示更多相关代码。感谢您的帮助建议,但是,它仍然不适用于我。你能做一个var_dump($\u POST);
并显示结果吗?数组(3){[“用户id”]=>string(1)“2”[“progressz”]=>string(1)“4”[“progressz提交”]=>string(0)”}这是结果soof-我很抱歉,在我使用的代码中,而不是update user\u meta()
。我已经更改了它-它在从update_post_meta()更改为update_user_meta()时显示严重错误。感谢您的建议,但是,它仍然不适用于我。您可以执行var_转储($\u post);
并显示结果吗?数组(3){[“user_id”]=>字符串(1)“2”[“progressz”=>字符串(1)“4”[“progressz提交”=>字符串(0)”吗}这是结果oof-很抱歉,在我使用的代码中,我没有使用update\u user\u meta()
。我已经更改了它-它显示了从update\u post\u meta()更改为update\u user\u meta()时出现的严重错误。