簡體   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