php - 更新 wordpress 自定义表

标签 php html wordpress

我正在构建一个包含自定义用户数据的仪表板。仪表板上的每个元素都进入循环并显示有关该用户的相关信息。我能够使用 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/

相关文章:

php - 需要设置商家ID

php - 在当前自定义帖子类型页面中将 ACF 字段的值添加到重力表单

html - Logo 和网站图像拒绝响应

css - 使输入字段的宽度相对于其内容

wordpress - 我正在尝试在同一台服务器上安装 WordPress 和 Joomla

php - 将数组拆分成唯一的对

php - 如何最好地将 LAMP 制作的项目转移到 WAMP 而不破坏它?

jquery - Internet Explorer (IE) 的 CSS/HTML 兼容性问题

html - 链接在网站上不起作用?鼠标不能悬停

html - 字体解析问题