Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从ajax工作插入,需要进行更改以检查现有条件是否更新_Php_Jquery_Mysql_Sql_Ajax - Fatal编程技术网

Php 从ajax工作插入,需要进行更改以检查现有条件是否更新

Php 从ajax工作插入,需要进行更改以检查现有条件是否更新,php,jquery,mysql,sql,ajax,Php,Jquery,Mysql,Sql,Ajax,我正试图解决一个问题。用户当前可以在表单中创建内容,该表单在提交时进行ajax调用。调用时,它会为实际内容创建一个mysql记录,获取该内容记录的ID,然后为容纳该内容的“面板”创建一个记录(将页面ID、面板类型和内容全部关联起来) 这是完美的,但如果他们试图编辑表单中的内容并提交,则只会创建另一条记录 下面的JS/AJAX将面板类型、页面ID和内容作为隐藏字段传递: <script type="text/javascript"> $("#leftHalfForm").submit

我正试图解决一个问题。用户当前可以在表单中创建内容,该表单在提交时进行ajax调用。调用时,它会为实际内容创建一个mysql记录,获取该内容记录的ID,然后为容纳该内容的“面板”创建一个记录(将页面ID、面板类型和内容全部关联起来)

这是完美的,但如果他们试图编辑表单中的内容并提交,则只会创建另一条记录

下面的JS/AJAX将面板类型、页面ID和内容作为隐藏字段传递:

<script type="text/javascript">

$("#leftHalfForm").submit(function(e){

      var string = $('#leftHalfForm').serialize() + '&page_id=' + page_id;
      console.log(string);

    // AJAX Code To Submit Form.
        $.ajax({
            type: "POST",
            url: "addPanel.php",
            data: string,
            cache: false,
            success: function(response){

            }
        });

    return false;

});

</script>
面板桌

panel_type_id  |  page_id  |  cont_id
-------------------------------------
2                 123           52
现在如果他们编辑并点击submit,我已经传递了panel_type_id和page_id,所以我要做的就是看到panel_type_id为2和page_id为123已经存在,所以我只需要更新与之相关联的内容记录(content id为52)


它看起来应该足够简单,但我不确定如何保持新面板的当前功能,同时允许编辑/更新已有的内容。

诀窍是进行额外的查询,以检查是否有与该面板类型id和页面id匹配的记录。因此,我们进行计数,如果计数返回0,则插入新记录,否则更新现有记录

$checkIfExists = "SELECT COUNT(*) AS count FROM panels WHERE panel_type_id = $panelID AND page_id = $pageID";
if($mysqlConn->query($checkIfExists)->count = 0){
$q= "
    INSERT INTO panels(panel_type_id, page_id, cont_id)
    VALUES ('$panelID', '$pageID', '$cont_id');
";
} else {
$q= "
    UPDATE panels SET cont_id = $cont_id WHERE panel_type_id = $panelID AND page_id = $pageID
";
}

if ($mysqlConn->query($q) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $addPanel . "<br>" . $mysqlConn->error;
}
$checkIfExists=“选择COUNT(*)作为来自面板的计数,其中面板类型=面板id=$panelID,页面=页面id=$pageID”;
if($mysqlConn->query($checkIfExists)->count=0){
$q=”
插入面板(面板类型id、页面id、连续id)
值(“$panelID”、“$pageID”、“$cont_id”);
";
}否则{
$q=”
更新面板集合cont_id=$cont_id,其中面板类型_id=$PANELEID和页面_id=$pageID
";
}
if($mysqlConn->query($q)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$addPanel.“
”$mysqlConn->错误; }
您可以添加一个简单的条件-如果面板表中存在页面id-内容表中的数据将在面板表中不做任何更改的情况下更新,如果不存在-将使用当前代码。好的,我认为这基本上是有意义的,除非记录确实存在,那么我只想更新我的内容表的内容。因此,初始提交将创建一个面板记录和内容记录。我只想检查pageid/面板类型是否存在,如果存在,只需使用该ID更新内容表中的“content”列即可
panel_type_id  |  page_id  |  cont_id
-------------------------------------
2                 123           52
$checkIfExists = "SELECT COUNT(*) AS count FROM panels WHERE panel_type_id = $panelID AND page_id = $pageID";
if($mysqlConn->query($checkIfExists)->count = 0){
$q= "
    INSERT INTO panels(panel_type_id, page_id, cont_id)
    VALUES ('$panelID', '$pageID', '$cont_id');
";
} else {
$q= "
    UPDATE panels SET cont_id = $cont_id WHERE panel_type_id = $panelID AND page_id = $pageID
";
}

if ($mysqlConn->query($q) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $addPanel . "<br>" . $mysqlConn->error;
}