Php 如果有新数据,是否添加新行?

Php 如果有新数据,是否添加新行?,php,Php,我当前的DB查询将覆盖该行,如果该行中的列发生更改,我将尝试添加一个新行,让我展示一个示例 这是一排。当post_id更改时,id将作为该id的新行 这就是id更改时发生的情况,它会覆盖。。相反,我希望创建一个新行 下面是插入数据和更新的函数 //This is the INSERT // Execute query $wpdb->query( $wpdb->prepare("INSERT INTO $table_name

我当前的DB查询将覆盖该行,如果该行中的列发生更改,我将尝试添加一个新行,让我展示一个示例

这是一排。当post_id更改时,id将作为该id的新行

这就是id更改时发生的情况,它会覆盖。。相反,我希望创建一个新行

下面是插入数据和更新的函数

 //This is the INSERT
 // Execute query
        $wpdb->query(
            $wpdb->prepare("INSERT INTO $table_name
                                (post_id, name, data, date_c, date_m)
                            VALUES (%d, %s, %s, %d, %d)",
                            '',
                            '',
                            time(),
                            time()
                            )
        );


  //This is the UPDATE
  // DB data
    $post_id = $wpdb->escape($alldata['postid']['thepostid']);
    $name = $wpdb->escape($alldata['properties']['title']);
    $data = $wpdb->escape(json_encode($alldata));

    // Update
    $wpdb->query("UPDATE $table_name SET
                post_id = '$post_id',
                name = '$name',
                data = '$data',
                date_m = '".time()."'
              ORDER BY id DESC LIMIT 1");
这是一个提交功能,当表单被提交时,行被插入或更新,我不知道如何写它,如果新的post_id插入新行。。。希望有人能帮我写下这个问题并给我一些建议

更新:


这太容易了。您可以使用jquery.post或ajax。如果您想使用submit:AddHidden元素,并将其值设置为更新或插入您的决定。

在wordpress wp_Posteta中,他们的操作与我试图实现的类似,我明白您的意思,但在这种情况下是必要的。你能举一个简单的例子吗,我不太清楚我会如何检查ID是否已通过…是的,我知道你现在正在尝试做什么。。。您能否发布表单的示例标记,以查看您正在发送哪些数据以及如何调用更新函数?很抱歉,有人在门口。。我更新了OP使其更完整。。有发布数据的表单和函数。。很明显,这涉及到ajax。。但我更关注于更改insert查询,以便在$post_id数据更改时添加新行。我认为这通常被称为“upsert”检查,例如“upsert”
 <form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" class="wrap" id="ls-slider-form">  

    <input type="hidden" name="submitted" value="1">


             <!-- Global Settings -->
        <div class="ls-page ls-post-id" style="display: block;">
        <div id="post-body-content">
           <div id="titlediv">
               <div id="titlewrap">
                   <input type="text" name="thepostid" value="<?php echo the_ID() ?>">
               </div>
           </div>
        </div>
    </div> 

  <input type="submit" /> 

 </form>


function brash_add_settings() {


     // Add slider
if(isset($_POST['submitted'])) {

    // Get WPDB Object
    global $wpdb;

    // Table name
    $table_name = $wpdb->prefix . "brash";


        // Execute query
        $wpdb->query(
            $wpdb->prepare("INSERT INTO $table_name
                                (post_id, name, data, date_c, date_m)
                            VALUES (%d, %s, %s, %d, %d)",
                            '',
                            '',
                            time(),
                            time()
                            )
        );

        // Empty slider
        $alldata = array();

        // ID
        $id = mysqli_insert_id();


        $alldata['properties'] = $_POST['alldata']['properties'];
        $alldata['postid'] = $_POST['brash-post-id']['postid'];


    // DB data
    $post_id = $wpdb->escape($alldata['postid']['thepostid']);
    $name = $wpdb->escape($alldata['properties']['title']);
    $data = $wpdb->escape(json_encode($alldata));

    // Update
    $wpdb->query("UPDATE $table_name SET
                post_id = '$post_id',
                name = '$name',
                data = '$data',
                date_m = '".time()."'
              ORDER BY id DESC LIMIT 1");

    // Echo last ID for redirect
    echo $id;

    die();
}



 }