更新wordpress自定义表

时间:2017-07-12 03:50:14

标签: php html wordpress

我正在使用自定义用户数据构建仪表板。仪表板上的每个元素都进入循环并显示有关该用户的相关信息。我能够使用会话和循环显示自定义字段,但我还需要更新信息,不知何故它不会更新。请帮助解决这个问题:

<?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 个答案:

答案 0 :(得分:1)

你忘了在查询中添加这两件事,

$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']))

您使用了错误的提交按钮名称

尝试使用此代码。希望这会对你有所帮助。

答案 1 :(得分:-1)

您可以输出错误

if($wpdb->last_error !== '') :
    $wpdb->print_error()
endif; 

顺便说一下,请使用$ wpdb-&gt;准备准备SQL查询以便安全执行