网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

更新wordpress自定义表

GG网络技术分享 2025-03-18 16:12 0


问题描述:

I am building a dashboard with custom User Data. Each element on the dashboard goes into the loop and shows the related information regarding that user.I am able to show the the custom field using session and loops but i need to update the information as well, somehow it is not updating. Please help with this:

<?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>

网友观点:

You were forget to add this 2 things in query,

$table_name,array(\'cname\'=>$_POST[\'cname\']),array(\'id\'=>$wsid),array(\'%s\'),array(\'%d\'))

array(\'%s\'),array(\'%d\')

Check this example

$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();

EDIT

Also change this

if (isset($_POST[\'submit\']))

To

if (isset($_POST[\'editsave\']))

You were using wrong submit button name

Try with this code. Hope this will helps you.

###

You can output the error

if($wpdb->last_error !== \'\') :

$wpdb->print_error()

endif;

btw, please use $wpdb->prepare to prepares a SQL query for safe execution

标签:

提交需求或反馈

Demand feedback