【问题标题】:Delete and fill the information删除并填写信息
【发布时间】:2017-06-08 11:44:34
【问题描述】:

您好,我有这张表,我希望能够删除 P(number) 和 tituloP(number) 上的数据。 如果用户选择最后一个 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 更容易,我只需要用 0 填充 P5,用空白字段和​​ Num_Slides 4 填充 TituloP5

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

到目前为止,我有这个用于 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);
        }
    }   
}

【问题讨论】:

  • 了解prepared Statements以防止SQL注入
  • 你意识到你正在尝试更新你的整个数据库
  • @Fred-ii- 更新抱歉
  • WHERE在哪里?
  • @Fred-ii- 编辑

标签: php mysql for-loop


【解决方案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";
}

【讨论】:

  • ~问题是如果我删除第 3 页而不用第 4 页信息填充它,该站点将显示一个空页面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 2019-10-13
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多