繁体   English   中英

SQL-表中的循环+更新

[英]SQL - Loop + UPDATE in tables

使用POST方法$tab_tuto_sauvegarde = $_POST['tableau_valeurs_modifiees']; 一个Ajax请求向我返回此信息:

 [Chapitres] => Array
            [0] => Array
                    [titre_chapitre] => BONJOUR
                    [id_chapitre] => 1

            [2] => Array
                    [titre_chapitre] => Manger
                    [id_chapitre] => 3

我有一个名为'Chapitres'的表

|  Id_chapitre  ||  titre_chapitre |
__________________________________
|    1          ||    C01          |
|    2          ||    C02          |
|    3          ||    C03          |
|    4          ||    C04          |
...

我需要更新表'Chapitre' 'titre_chapitre' ,其中WHERE id_chapitre = "[id_chapitre] return by ajax"由ajax请求返回的每个索引结果(在此示例中,索引[0]和[2] ...但是可以为索引[0]和[1]和[4] ...)

结果一定是这样

|  Id_chapitre  ||  titre_chapitre |
__________________________________
|    1          ||    BONJOUR      |
|    2          ||    C02          |
|    3          ||    Manger       |
|    4          ||    C04          |
...

我尝试了这个但是...

if (isset ($tab_tuto_sauvegarde['Chapitres'])){
    foreach($tab_tuto_sauvegarde['Chapitres'] as $index => $valeur){
    mysqli_query($BDD_connect, "UPDATE Chapitres SET titre = titre_chapitre(from array ajax) WHERE Id_chapitre = id_chapitre(from array ajax) "); 
    }
}

使用准备好的语句的方法如下。

$stmt = mysqli_prepare($BDD_connect, "UPDATE Chapitres SET titre = ? WHERE id_tutoriel = ?");
mysqli_stmt_bind_param($stmt, "si", $titre, $id);
foreach ($tab_tuto_sauvegarde['Chapitres'] as $chapitre) {
    $titre = $chapitre['titre_chapitre'];
    $id = $chapitre['id_chapitre'];
    mysqli_execute($stmt);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM