Objectif visé :
Lors d'une inscription à un spectacle, faire en sorte que le n° de la place, enregistrée dans la bdd, soit coloré sur la page de visualisation des places de la salle, pour le distinguer des places encore disponibles.
Lors d'un clic sur une élément de mon array, celui-ci me renvoie à un formulaire avec le n° de l'array (correspondant à un n° de place) saisie automatiquement dans un champ.
Une fois l'ensemble du formulaire saisie, les données sont enregistrées dans ma bdd.
Problématique :
Je ne vois pas comment arriver à faire en sorte que la place inscrite dans la bdd, puisse à l'aide d'une requête me colorier le n° correspondant sur la page de mon array.
Ma page visualisant les places dans la salle
Code:
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
61
62
63
64
65
66
67
68 $<?php //http://www.coppoweb.com/outils/phpcode/affichetableau.php // mettre à zéro si calcul automatique à partir de nbcol if (!isset($nblig)) $nblig = 0; // mettre à zéro si calcul automatique à partir de nblig if (!isset($nbcol)) $nbcol = 17; // dessiner les cellules ne contenant pas de valeurs en fin de tableau if (!isset($completer)) $completer = 1; // 1 => du haut vers le bas puis de la gauche vers la droite // 0 => de la gauche vers la droite puis du haut vers le bas if (!isset($vertical)) $vertical = 0; // récupération des n valeurs dans $place[] $place = Array(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); $nb_total = sizeof($place); // calcul des limites if ($nblig != 0) { $nbcol = ceil($nb_total / $nblig); } elseif ($nbcol != 0) { $nblig = ceil($nb_total / $nbcol); } else { echo "Nb de lignes et Nb de colonnes indéfinis !"; exit; } echo "<TABLE CELLSPACING=1>\n\n"; $limite = $completer ? $nbcol*$nblig : $nb_total; if ($vertical) { // affichage vertical for ($cpt = 0; $cpt < $limite; $cpt++) { $col = (int)($cpt / $nblig) + 1; $lig = ($cpt % $nblig) + 1; $valeur = ($cpt < $nb_total) ? $place[$cpt] : ''; if ($col == 1) $ligne[$lig] = "<TR BGCOLOR='#DADADA'>"; $ligne[$lig] .= "<TD> ".$valeur." </TD>"; if ($col == $nbcol) $ligne[$lig] .= "</TR>\n\n"; } for ($cpt = 1; $cpt <= sizeof($ligne); $cpt++) { echo $ligne[$cpt]; } } else { // affichage horizontal for ($cpt = 0; $cpt < $limite; $cpt++) { $col = ($cpt % $nbcol) + 1; $valeur = ($cpt < $nb_total) ? $place[$cpt] : ''; if ($col == 1) echo "<TR BGCOLOR='#DADADA'>"; { echo "<td><a href=saisie2.php?valeur=".$valeur.">".$valeur."</a></td>\n"; } if ($col == $nbcol) echo "</TR>\n\n"; } } echo "</TABLE>\n"; ?>
Une partie de ma page de formulaire
Code:
1
2
3
4
5
6
7
8
9 <?php include ("connect.php"); <form action="<?php echo "traitement2.php"; ?>" method="post"> <p> <label for="numeroplace">Numéro de la place :</label> <input type="text" id="id_place" name="id_place" tabindex="1" value="<?php $valeur = $_GET['valeur']; echo $_GET['valeur']; ?>" size="5" maxlength="3" /> </p> ?>
Et ensuite j'ai la page de mon traitement de formulaire qui permet l'enregistrement sur ma bdd.
Une partie du code
etc.Code:
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 ?php // Si le formulaire a été envoyé, on teste les champs... if (empty($_POST['id_place'])) ... $message .= "Merci de saisir le numéro de la place.<br /> "; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo "$message </br>"; ... echo '<a href =" http://chaix.village.free.fr/test4/saisie2.php">Retour au formulaire de saisie</a> </br>'; } // sinon c'est ok else { foreach($_POST as $index => $valeur) { $$index = mysql_real_escape_string(trim($valeur)); } $sql = "INSERT INTO t_place VALUES ('".$id_place."')"; $res = mysql_query($sql); // on regarde si la place existe déjà $sql = "SELECT id_place FROM t_place WHERE id_place='$id_place'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); if(($resultat!=0) and ($id_place==$id_place))// la place existe déjà, on affiche un message d'erreur { echo '<font color="red">Désolé, mais la place '.$id_place.' est déjà saisie dans la base.</font>';
Merci pour votre aide.