您好我有这个表,我希望能够删除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);
}
}
}
答案 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";
}