Bonjour à tous!

Suite à de nombreuses recherches d'erreurs dans un script, je fais appel à votre aide. Merci d'avance pour l'attention que vous attacherez au sujet.

Je suis en train d'écrire un petit module de gestion d'évènements dans un calendrier, rien de très compliqué jusque là...Mais voilà, j'ai un petit souci que je me hâte de vous raconter, mais avant ça, un peu de code!

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
<?php
	$date = $_GET['jour']; //On va récupérer le contenu de la variable jour provenant du calendrier
	$date_string = (string) $date; //On convertit la date de int vers string
	$date_string_size = strlen($date_string); //On détermine le nombre de caractères dans cette chaîne
 
	if($date_string_size < 6)
	{
		$date_string = '0'.$date_string.''; //On rajoute un 0 devant la date si le jour n'est pas un entier à deux chiffres
	}
 
	$jour = substr($date_string, 0, 2); //on coupe le string pour avoir le jour
	$mois = substr($date_string, 2, 2); //le mois
	$annee = substr($date_string, 4, 2); //l'annee
 
	echo '<h3>Rencontres du '.$jour.'/'.$mois.'/'.$annee.'</h3>'; //On affiche le résultat
 
	$admin_bdd = "xxx"; //A modifier selon l'administrateur de la base de données
	$pass_bdd = "xxx"; // A modifier selon le mot de passe de la base de données
	$bdd = "xxx"; //A modifier selon le nom de la base de données
 
	mysql_connect("localhost", $admin_bdd, $pass_bdd) or die(mysql_error()); //Connexion à MySql et sélection de la base
	mysql_select_db($bdd) or die(mysql_error);
 
	if(isset($_POST['P1']) && $_POST['P1'] != NULL && isset($_POST['Heure']) && $_POST['Heure'] != NULL && isset($_POST['Carte']) && $_POST['Carte'] != NULL) //Conditions d'insertion dans la table
	{
		$p1 = htmlspecialchars(mysql_real_escape_string(addslashes($_POST['P1']))); //Mesures de sécurité liées à l'insertion dans une table
		$p2 = htmlspecialchars(mysql_real_escape_string(addslashes($_POST['P2'])));
		$heure = htmlspecialchars(mysql_real_escape_string(addslashes($_POST['Heure'])));
		$carte = htmlspecialchars(mysql_real_escape_string(addslashes($_POST['Carte'])));
 
		$insertion = "INSERT INTO calendrier VALUES('', '".$p1."', '".$p2."', '".$date."', '".$heure."', '".$carte."')";
		$requete_insertion = mysql_query($insertion) or die(mysql_error()); //Insertion
	}
 
	$selection = 'SELECT * FROM calendrier WHERE Date=\''.$date.'\''; 
	$requete1 = mysql_query($selection) or die(mysql_error()); //On récupère le contenu de la table
	$donnees_requete1 = mysql_fetch_array($requete1); //On met les données sous forme lisible
 
         mysql_close() or die(mysql_error()); //On n'oublie pas de fermer MySql et de vérifier si un problème subsiste
 
	if($donnees_requete1['Date'] != NULL) //Alors, a-t-on trouvé au moins une entrée?
	{
?>
 
	<table style = 'border: solid 1px white; width: 640px;'>
		<tr>
			<td>Joueur 1</td>
			<td>Joueur 2</td>
			<td>Heure</td>
			<td>Carte</td>
			<td>Statut</td>
		</tr>
 
<?php
	while($donnees_requete1 = mysql_fetch_array($requete1)) //Boucle d'affichage des différentes entréees recueillies lors de la sélection
	{
?>
		<tr>
			<td><?php echo stripslashes($donnees_requete1['P1']); ?></td>
			<td><?php echo stripslashes($donnees_requete1['P2']); ?></td>
			<td><?php echo stripslashes($donnees_requete1['Heure']); ?></td>
			<td><?php echo stripslashes($donnees_requete1['Carte']); ?></td>
			<td>
				<?php
					if($donnees_requete1['P2'] == NULL || $donnees_requete1['P1'] == NULL)
					{
						echo '<a href = \'calendrier.php?action=change&amp;id='.$donnees_requete1['ID'].'\'>Libre (Rejoindre?)</a>';
					}
 
					else
					{
						echo 'Complet';
					}
				?>
			</td>
			<td>Rejoindre le salon de discussion</td>
		</tr>
<?php
	}
?>
	</table>
 
<?php
	}
 
	else
	{
?>
 
	<p>Il n'y a pas encore de rencontre à cette date.</p>
 
<?php
	}
?>
 
<h3>Prévoir une rencontre</h3>
 
<form action = 'rencontres.php?jour=<?php echo $date; ?>' method = 'post'>
	<table>
		<input name = 'ID' type = 'hidden'/>
 
		<tr>
			<td>Joueur 1</td>
			<td><input name = 'P1' type = 'text'/> (*)</td>
		</tr>
 
		<tr>
			<td>Joueur 2</td>
			<td><input name = 'P2' type = 'text'/></td>
		</tr>
 
		<tr>
			<td>Heure</td>
			<td><input name = 'Heure' type = 'text'/> (*)</td>
		</tr>
 
		<tr>
			<td>Carte</td>
			<td><input name = 'Carte' type = 'text'/> (*)</td>
		</tr>
 
		<tr>
			<td><input type = 'submit' value = 'Valider'/></td>
		</tr>
	</table>
</form>
 
<p>Tous les champs marqués d'une astérisque sont obligatoires!</p>
Le problème est que lors de l'exécution de ce script pour la première fois (i.e. quand je remplis pour la première fois le formulaire et que je le valide (la table étant toujours vide donc)), le tableau avec les titres des champs apparaît bien au lieu de 'Il n'y a pas encore de rencontres prévues à cette date' mais les données que j'ai insérées ne sont pas visibles...Ce n'est qu'au deuxième enregistrement qu'alors, effectivement, les données que je viens d'entrer s'affichent...Sans pour autant que le premier enregistrement ne refasse son apparition...

J'ai relu le code pour voir où l'erreur dans le raisonnement, et je ne trouve pas.

Merci d'avance pour votre aide précieuse!

PS: aucune erreur MySQL déclarée lors de l'exécution.
PS 2: la page calendrier.php appartient (via include) à rencontres.php.