我正在构建一个包含自定义用户数据的仪表板。仪表板上的每个元素都进入循环并显示有关该用户的相关信息。我能够使用 session 和循环显示自定义字段,但我也需要更新信息,不知何故它没有更新。请帮忙解决这个问题:
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'contract';
$wsid = $_SESSION['wedding-values'];
$results = $wpdb->get_results( "SELECT * FROM $table_name WHERE id=$wsid " );
if ( $results ) {
foreach ( $results as $result ){
$wcname=$result->cname;
$wctname=$result->ctname;
$waddress=$result->address;
$wmobile=$result->mobile;
$wemail=$result->email;
$wdate=$result->Date;
$id=$result->id;
}
}
if ( isset( $_POST['submit'] ) ){
$wpdb->update($table_name,array(
'cname'=>$_POST['cname'],array('id'=>$wsid))
);
}
?>
HTML:
<div id="col-md-9">
<form action="" method="post">
<table>
<tr>
<td><p style="color: red"> Couple Name </p></td>
<td><input type=text name=cname placeholder=<?php echo $wcname;?>></td>
</tr>
<tr>
<td><p style="color: red"> Contact Name </p></td>
<td><?php echo $wctname;?></td>
</tr>
<tr>
<td><p style="color: red"> Address </p></td>
<td><?php echo $waddress;?></td>
</tr>
<tr>
<td><p style="color: red"> Mobile </p></td>
<td><?php echo $wmobile;?></td>
</tr>
<tr>
<td><p style="color: red"> Email</p></td>
<td><?php echo $wemail;?></td>
</tr>
<tr>
<td><p style="color: red"> Date Submitted</p></td>
<td><?php echo $wdate;?></td>
</tr>
<tr>
<td><input type="submit" name="editsave" value="Edit and Save" ></td>
</tr>
</table>
</form>
</div>
最佳答案
您忘记在查询中添加这 2 个东西,
$table_name,array('cname'=>$_POST['cname']),array('id'=>$wsid),array('%s'),array('%d' ))
数组('%s'),数组('%d')
检查这个例子
$result = $wpdb->update($table_name,array(
'cname'=>$_POST['cname']),array('id'=>$wsid),array('%s'),array('%d'))
);
if($result > 0){
echo "Successfully Updated";
}
else{
exit( var_dump( $wpdb->last_query ) );
}
$wpdb->flush();
编辑
也改变这个
if (isset($_POST['submit']))
到
if (isset($_POST['editsave']))
您使用了错误的提交按钮名称
试试这个代码。希望这对您有所帮助。
关于php - 更新 wordpress 自定义表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048091/