Bonjour,

Je bloque devant un problème qui me semble vraiment basique.
J'ai une table qui contient entre autres 5 champs de type caractères représentant des réservations: j'y place successivement, chronologiquement les noms des personnes ayant réservé.
Mon problème est que lorsque j'enregistre une réservation (nom d'une personne), je me retrouve systématiquement avec l'enregistrement dans ma table de doublons.
ex: j'y enregistre la réservation de "TOTO": Toto va se trouver enregistré dans les 2 premiers champs encore vierges parmi les 5 !

Je vous joins ci-dessous mon script actuel, puis plus bas le contenu précis de l'enregistrement de ma base juste AVANT d'enregistrer une nouvelle réservation.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
$req = "SELECT * FROM syw7g_comprofiler WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$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);
 
if ($no_trajet === 'A') {
for (;;) {
if ($arr[47]==="") {
$req = "UPDATE syw7g_comprofiler SET `syw7g_comprofiler`.`cb_pass1_1` = '" . $name_dem . "' WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());
$maj_res = 'O';
$arr[47]="xxx";
 
$nb_reserv = $nb_reserv + 1;
 
if ($nb_reserv === $places) {break;}
}elseif ($arr[48]==="") {
$req = "UPDATE syw7g_comprofiler SET `syw7g_comprofiler`.`cb_pass2_1` = '" . $name_dem . "' WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());
$maj_res = 'O';
$arr[48]="xxx";
 
$nb_reserv = $nb_reserv + 1;
 
if ($nb_reserv === $places) {break;}
 
}elseif ($arr[49]==="") {
$req = "UPDATE syw7g_comprofiler SET `syw7g_comprofiler`.`cb_pass3_1` = '" . $name_dem . "' WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());
$maj_res = 'O';
$arr[49]="xxx";
 
$nb_reserv = $nb_reserv + 1;
 
if ($nb_reserv === $places) {break;}
}elseif ($arr[50]==="") {
$req = "UPDATE syw7g_comprofiler SET `syw7g_comprofiler`.`cb_pass4_1` = '" . $name_dem . "' WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());
$maj_res = 'O';
$arr[50]="xxx";
 
$nb_reserv = $nb_reserv + 1;
 
if ($nb_reserv === $places) {break;}
}elseif ($arr[51]==="") {
$req = "UPDATE syw7g_comprofiler SET `syw7g_comprofiler`.`cb_pass5_1` = '" . $name_dem . "' WHERE (`syw7g_comprofiler`.`id` = '" . $id . "')";
$maj = $conn->query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysqli_error());
$maj_res = 'O';
$arr[51]="xxx";
 
$nb_reserv = $nb_reserv + 1;
 
if ($nb_reserv === $places) {break;}
} // fin if
 
break;
} // fin for
}
Contenu du tableau $arr avant nouvel enregistrement d'une réservation:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Array ( [0] => 880 [1] => 880 [2] => [3] => Girouet [4] => [5] => Many [6] => 311 [7] => 2014-11-18 14:16:05 [8] => 1 [9] => 880_5ae1cd20523ca.jpg [10] => 1 [11] => gallery/tnkarpathos_vrontis.jpg [12] => 1 [13] => 50 [14] => 1 [15] => 1 [16] => 2018-12-26 12:23:28 [17] => 127.0.0.1 [18] => [19] => 0 [20] => [21] => [22] => [23] => [24] => [25] => 0 [26] => 0000-00-00 00:00:00 [27] => [28] => [29] => F [30] => 1985 [31] => N [32] => N [33] => C [34] => lundi au vendredi [35] => 1999 [36] => BMW 510 Série 5 2012 [37] => cb_photo_voiture_880_549bb45340703.jpg [38] => 1 [39] => NICE Arènes de Cimiez [40] => NICE Place du Cdt Gérome [41] => NICE Place de la Libération [42] => [43] => [44] => BIOT Rond Point des Chappes [45] => 1 [46] => L [47] => Lancelot du lac Martin [48] => [49] => [50] => [51] => (indisponible) [52] => 4 [53] => [54] => [55] => 140 rue Lepante [56] => NICE [57] => 06000 [58] => [59] => [60] => [61] => [62] => 1 [63] => [64] => 1 [65] => [66] => 1 [67] => [68] => 0632521588 [69] => [70] => 07:15 [71] => 07:20 [72] => 07:30 [73] => [74] => [75] => [76] => lundi au vendredi [77] => 1 [78] => BIOT Rond Point des Chappes [79] => 17:30 [80] => NICE Place de la Libération [81] => [82] => NICE Place du Cdt Gérome [83] => [84] => [85] => [86] => [87] => [88] => NICE Arènes de Cimiez [89] => Lancelot du lac Martin [90] => Larrivée Joelle [91] => [92] => [93] => (indisponible) [94] => [95] => [96] => [97] => [98] => 1 [99] => 25000 [100] => [101] => 1 [102] => 0 [103] => Département des Alpes Marîtimes [104] => 7 [105] => 36 [106] => BIOT Rond Point des Chappes )
La variable $places contient le nombre de réservations demandées par une personne réservant, et $nb_reserv le nombre de réservations déjà effectuées dans la boucle pour cette personne.
Tout enregistrement d'une nouvelle personne vient s'effectuer en position "48", mais aussi en position libre "49" et avec le même nom de personne quand $places=1 !!!

Merci beaucoup pour vos conseils éclairés.