2014-11-04 86 views
-4

如何给变量更新wordpress数据库?更新数据库wordpress的foreach变量

如果不是一个变量,我给号码是好的,我认为这是一个错误。

global $wpdb; 
    $wpdb->teams = $wpdb->prefix.'teams'; 
    $retrieve_data = $wpdb->get_results("SELECT * FROM $wpdb->teams WHERE moder = 'nie'"); 

    foreach ($retrieve_data as $retrieved_data){ 
     echo "<form method='post'><table><tr>"; 
     echo "<td>".$retrieved_data->id."</td>"; 
     echo "<td>".$retrieved_data->nazwa."<input type='hidden' name='id'>".$retrieved_data->id."</input><input type='submit' value='OK' /></td>"; 
     echo "</tr></table></form>"; 
    } 

    $id = $_POST['id']; 
    settype($id, 'int'); 
    $wpdb->update('teams', array('moder' => 'tak'), array('id' => $id)); 

回答

0

好的!完成:) thx :) 最终代码

global $wpdb; 
$table = $wpdb->prefix . "teams"; 
$retrieve_data = $wpdb->get_results("SELECT * FROM $table WHERE moder = 'nie'"); 

foreach ($retrieve_data as $retrieved_data) { 
    echo "<form method='post'><table><tr>"; 
    echo "<td>".$retrieved_data->id."</td>"; 
    echo "<td>".$retrieved_data->nazwa."<input type='text' name='id' value='$retrieved_data->id' /><input type='submit' name='test' value='OK' /></td>"; 
    echo "</tr></table></form>"; 
} 

print_r($_POST); 
$id = $_POST['id']; 
$table = $wpdb->prefix . "teams"; 
$wpdb->update($table, array('moder' => 'tak'), array('id' => $id)); 
0

你所做的基本上是错误的。你显示表格,然后你只需更新你的表格而没有任何值。提交表单后,更新表格。但是,如果有人加载页面,并且不提交表单,那么您将再次更新为0.

我想,您还需要验证id字段。

尝试这种在这条路上:

global $wpdb; 
$wpdb->teams = $wpdb->prefix . 'teams'; 

//Do this before any output in the buffer... 

//Check is there is a $_POST["id"]. And move this update block to the top of your file 
if (isset($_POST["id"])) { 
    $id = $_POST['id']; 
    settype($id, 'int'); 
    $wpdb->update('teams', array('moder' => 'tak'), array('id' => $id)); 
    //redirect the user to somewhere 
    header ("Location: " . $_SERVER["PHP_SELF"]); 
} 


$retrieve_data = $wpdb->get_results("SELECT * FROM $wpdb->teams WHERE moder = 'nie'"); 

foreach ($retrieve_data as $retrieved_data) { 
    echo "<form method='post'><table><tr>"; 
    echo "<td>" . $retrieved_data->id . "</td>"; 
    echo "<td>" . $retrieved_data->nazwa . "<input type='hidden' name='id'>" . $retrieved_data->id . "</input><input type='submit' value='OK' /></td>"; 
    echo "</tr></table></form>"; 
} 
0

错误:“无法修改标题信息 - 已经由(输出发送头开始在C:\ WAMP \ WWW \ MTB \可湿性粉剂内容\主题\ seebcioo \“header.php:16)in line 17”C:\ wamp \ www \ mtb \ wp-content \ themes \ seebcioo \ panel-adm-teams.php“ $ _SERVER [ “PHP_SELF”]);