删除并填写信息

时间:2017-06-08 11:44:35

标签: php mysql for-loop

您好我有这个表,我希望能够删除P(数字)和tituloP(数字)上的数据。 如果用户选择最后一个P(数字),我已经完成了删除查询。 现在我要做一个问题,如果用户删除中间数据,它会自动填充1个字段。

有一个例子:

IIDD | ID | Num_Slides | P1 | P2 | P3 | P4 | P5 | tituloP1 | tituloP2 | tituloP3 | tituloP4 | tituloP5 
1    | 4  | 5          | 1  | 2  | 4  | 5  | 2  |Sometext  |Sometext2 |Sometext3 |Sometext4 |Sometext5 | 

如果用户选择删除P5,我只需要填充P5为0,tituloP5为空白字段和​​Num_Slides 4

但是如果用户选择删除P3,tituloP3我必须将P5设置为0并将tituloP5设置为空白字段SET P4至2 tituloP4至Sometext5和SET P3至5 tituloP3至Sometext4,这样信息将在没有P'gaps的情况下更新

到目前为止,我有这个用于cicle但是没有用

if (isset($_POST['Confirmar'])){
    $max = 5;
    $menos1 = $max - 1;
    for ($i = 4; $i >= 1; $i--){
        $sqlya="SELECT P$i, tituloP$i FROM slider_settings where slider_settings.ID = 4";
        for ($k = $menos1; $k <= $menos1; $k++){
            $inserirya = "UPDATE slider_settings SET P$k ='P$i', tituloP$k ='tituloP$i' where slider_settings.ID = 4";
            $con1 = $connect->query($sqlya);
            $com2 = $connect->query($inserirya);
        }
    }   
}

1 个答案:

答案 0 :(得分:-1)

//这将提供U更新查询

function createUpdateString($position,&$str){

if($position==5){
    return false;
}
$nextPosition =  $position+1;

$str[] = " P{$position} =  P{$nextPosition}";
$str[] = " tituloP{$position} =  tituloP{$nextPosition}";
return createUpdateString($nextPosition,$str);
}

//取消你的删除3

//更新p3和tituloP3值0和“”

$updatePostion = 3;
$str = array();
//This function will create query string for you
createUpdateString($updatePostion,$str);
$queryString = implode(",",$str);

if(!empty($queryString)){
$query = "UPDATE TABLE_NAME SET ".$queryString ."where slider_settings.ID = 4";
}