通过查询删除表行

时间:2018-05-14 作者:Filip Pejakovic

此时,我正在尝试修改这个删除表行的插件,以仅删除“Status”列中不包含“Cekanje”一词的行,这是我尝试构建的代码和解决方案,如果有人可以帮助我:

$tableId = (int)$_POST[\'table_id\'];
$idKey = sanitize_text_field($_POST[\'id_key\']);
$idVal = (int)$_POST[\'id_val\'];

$wpdb->delete($mySqlTableName, array($idKey => $idVal));
$columnsMeta = WDTConfigController::loadColumnsFromDB($tableId, array($idColName));

if (count($columnsMeta) == 0) {
    $returnResult[\'error\'] = __(\'Supplied id column not exist.\', \'wpdatatables\');
    echo json_encode($returnResult);
    exit();
} else {
    $columnMeta = $columnsMeta[0];

    if ($columnMeta->id_column) {
        $idColumnKey = sanitize_text_field($columnMeta->orig_header);

        $deleteRowIds = $rows[$idColumnKey];

        foreach ($deleteRowIds as $rowId) {
            $rowId = (int)$rowId;

            if (empty($rowId)) {
                continue;
            }

            do_action(\'wpdatatables_excel_before_delete_row\', $rowId, $tableId);

            $res = $wpdb->delete($mySqlTableName, array($idColumnKey => $rowId));
这就是我正在尝试的解决方案,以防止删除“Status”=“Cekanje”的行

$dontdelete = $wpdb -> get_row($wpdb->prepare("SELECT id FROM SaveContactForm7_1 WHERE id != $idKey"));

if($dontdelete)
{
    exit();
}

1 个回复
SO网友:Filip Pejakovic

实际上,wpdb delete函数可以处理一个数据数组,所以我只需要在其中放入两个变量并求解它。

    $wpdb->delete($mySqlTableName, array($idKey => $idVal, Status => "Cekanje"));
并解决了。

结束

相关推荐

WordPress中的AJAX,将坐标数据发送到MySQL并显示为MAP

我花了几个月的时间试图弄清楚如何获取用户的地理位置并将其传递到MySQL,以及在地图上用标记显示后如何将其传递到MySQL。我已经在通过ajax将数据传递给php方面遇到了困难。并在stackoverflow中进行搜索和研究。看来我的代码是正确的。AJAX似乎有一种与WORDPRESS协作的特殊方式。下面是中存在的代码template-maps.php: var pos; var infoWindow = new google.maps.InfoWindow({map: map});