Pb de "doublon" lors d'un UPDATE de table avec Mysqli

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

Pb de "doublon" lors d'un UPDATE de table avec Mysqli

Par clend  -  0 reponse  -  Le 25/04/2019 14:10  -  Editer  - 

Je butte sur quelques lignes de php et mysql, où la màj d'un élément de table doublonne systématiquement. Ayant déjà passé de nombreuses heures infructueuses sur ce pépin, qui pourrait me sortir de ce problème ?
Voici ci-dessous le script:

    $req = "SELECT id, cb_pass1_1, cb_pass2_1,  cb_pass3_1,  cb_pass4_1,  cb_pass5_1, cb_pass1_2, cb_pass2_2, cb_pass3_2, cb_pass4_2, cb_pass5_2 FROM syw7g_comprofiler WHERE id=".$id;  

    $maj = $conn->query("SET NAMES utf8");  
    $maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());  
    $nba = $maj->num_rows;  
    if ($nba>0) {  
        $arr = mysqli_fetch_row($maj); // enregt unique du conducteur sélectionné  

        mysqli_free_result($maj);  

        echo "Nombre de places demandées = " .$places. "<br />";  

        $nb_reserv = 0;  

        $maj_res = 'N';  

        if ($no_trajet === 'A') {  
            for ($iii=1; $iii<6; $iii++) {  

                if ($arr[$iii]=='') {  

                    $maj_res = 'O';  
                    $arr[$iii] = $name_dem;  // nom de celui qui réserve  

                    ++$nb_reserv;  

                    if ($nb_reserv == $places) break;  

                } // fin if ($arr...  
            } // fin for  

            if ($maj_res == 'O') {  

                $req = "UPDATE syw7g_comprofiler SET cb_pass1_1 = '" . $arr[1] . "', cb_pass2_1 = '" . $arr[2] . "', cb_pass3_1 = '" . $arr[3] . "', cb_pass4_1 = '" . $arr[4] . "', cb_pass5_1 = '" . $arr[5] . "'  WHERE id=".$id;  

                $maj = $conn->query("SET NAMES utf8");  
                $maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());  

                mysqli_free_result($maj);  

            }  
        } // fin trajet A  

Je cherche à mettre à jour une table où chaque ligne représente un conducteur. C'est ce que je sélecte au début. Les champs cb_xx représentent les 5 réservations possibles de places pour un trajet aller, puis les 5 du trajet retour.
Les lignes qui suivent sont ici pour enregistrer une nouvelle réservation par l'utilisateur ($name_dem).
Le système fonctionne, mais lorsque je modifie par ex. le champ cb_x par le nom du demandeur pour enregistrer sa réservation, le champ suivant est également modifié avec le même nom de demandeur. Et ceci, même si la demande de réservation ne porte que sur 1 réservation !

J'ai pisté le fonctionnement en faisant apparaître à l'écran, et en clair, les points de passage et les champs en cours de mise à jour: tout est nickel d'après le cheminement à l'écran. Mais quand j'analyse ensuite le contenu de ma table: chaque réservation est double !

Alors j'ai imaginé que j'avais peut-être un problème de gestion des buffers, de cache, etc... Mais malgré bien des modifs, rien n'y fait.
Je n'arrive pas à interpréter ce phénomème de doublons.

Merci pour votre aide.

 

Réponses apportées à cette discussion

Aucune réponse apportée actuellement

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !