IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Inscrire des informations dans une autre page à l'aide d'un bouton submit


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut Inscrire des informations dans une autre page à l'aide d'un bouton submit
    Bonjour,

    Dans cette page (participer.php), quand l'utilisateur (ici "Redrum") clique sur "Détail inscription" :

    http://www.noelshack.com/2015-13-142...3-capture4.png

    Il accède à cette page :

    http://www.noelshack.com/2015-13-142...6-capture3.png

    On voit que la page a un id spécifique dans la barre d'adresse et un bouton submit.

    J'aimerais que si l'utilisateur,en l’occurrence Redrum, clique sur le bouton valider, qu'il accède à la page "Mes courses" (inscrite dans le menu) qui est en quelques sorte sa propre page d'informations sur ses courses aux quelles ils participera ou aux quelles il a déjà participer :

    http://www.noelshack.com/2015-13-142...1-capture5.png

    Donc cette page se complètera des informations de la courses qu'il a validé, exactement comme la page participer.php :

    http://www.noelshack.com/2015-13-142...3-capture4.png

    On gardera la première ligne du tableau qu'on affichera sur la page "mes_courses.php" donc.

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    As-tu essayé quelque de faire quelque chose dans un premier temps?
    As-tu du code à nous proposer? Ou tu souhaites que l'on t'aiguilles?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    J'aimerais savoir comment en un clique, j'inscris des valeurs d'une page à une autre.

    Je créer une table pour ma page "mes_courses.php" qui comprendra les informations de la course spécifique à son id ?

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Comment forme tu t'on tableau des courses? à l'aide d'une table je suppose.
    Donc il faut que lorsque la personne clique sur valider tu enregistre dans ta base que cette utilisateur s'enregistre pour cette course, avec une table comme:

    Table: inscription_coureur ou autre.
    Les champs (tu réutilise l'id du coureur et l'id de la course): id_inscription_coureur | id_coureur | id_course |date_inscription (éventuellement)

    Et tu n'auras plus cas faire une redirection vers ta page "Mes courses" en générant un tableau comme tu l'as déjà fait
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    D'accord, donc le traitement se fait bien sûr la page "détail_inscription.php" (la ou le bouton submit se trouve) je met le bouton submit dans un formulaire avec une method POST, ensuite un :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($_POST[submit])
    {
        //Un insert des détails de la courses à partir de l'id de celle ci dans une table "inscription_coureur"
        //Une redirection dans la page mes courses
    }

    Et dans la page mes courses j'affiche les données de ma table" inscription_coureur" comme un tableau donc ?

    Comment je prend en compte le pseudo du coureur ? J'ai pas envie d'afficher la participation valider à chaque coureur mais à un coureur spécifique.

    Aussi comment je réduit le nombre de participants par nombre de cliques ? Exemple si l'utilisateur Redrum clique sur la première course, il pourra plus redemander une réinscription et le nombre de participants se reduira à moins 1 ? Un update de participant ? Si oui comment l'écrire ?

  6. #6
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Oui tu l'affiche de la même manière que dans celle de la liste des courses.

    Mais lorsque tu récupère les informations pour créer ton tableau tu fais bien une requête dans ta base? Donc tu utilise l'id de l'utilisateur connecté pour récupérer ses courses, celle où il est inscrit.

    Et pour réduire le nombre de participants tu fais bien un update au même niveau que l'insertion dans "inscription_coureur", lors du submit.

    Mais pense à modifier aussi la page "informations", si le coureur n'est pas inscrit affiche le bouton valider, mais si il est déjà inscrit, il ne pourra pas s'inscrire une seconde fois, donc sois tu peux modifier le bouton en "se désinscrire" ou dire au coureur qu'il est déjà inscrit à cette course. (encore à l'aide d'une requête! )
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup ! Pour réduire le nombre de participants, il faudra aussi faire un update au niveau de ma table "organiser" j'imagine (table qui comporte la liste des courses) pour afficher le nombre de participants restant à une courses précise pour les autres coureurs désirant s'inscrire à cette course.

    Le bouton "ne plus y participer" je n'y avais pas penser, une condition qui l'affiche que si le coureur à déjà valider sa participation donc...
    Après ça sera un delete de la table "inscription_coureur" de l'id de la course en question

    Je vais essayer de coder tout ça et je posterais mes retours ici, merci je vais pouvoir avancer

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Je remonte le sujet car je rencontre quelques difficulté :

    Ici on peut voir que l'organisateur connecté (Organisateur1) peut modifier ou supprimer sa course seulement via l'affichage du tableau :

    http://www.noelshack.com/2015-14-1427706941-capture.png

    Si je clique sur modifier, j'accède bien à la page de modification de la course mais je peux modifier la course de "Organisateur2" en modifiant l'url :

    http://www.noelshack.com/2015-14-1427706993-capture.png

    Mon code pour la page modifier.php :

    Code php : 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
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    <?php
    	//Seul l'organisateur peut accéder à la page.
    	session_start();
    	if($_SESSION["role"] == "Organisateur")
    	{
    		//Code HTML
    	}
    	else
    	{
    		header('Location: index.php'); 
    	}
    ?>
     
    <?php include("commun/page.php"); ?>
    <?php include("commun/menu.php"); ?>
    <?php include("BDD/connexionBD.php");?>
     
    <?php
    	//Pour que les accents apparaissent.
    	mysqli_query($connexion, "SET NAMES 'utf8'"); 
    	mysqli_query($connexion, "SET CHARACTER SET 'utf8'");
    ?>
     
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title> Modifier </title>
    		<link rel="stylesheet" type="text/css" href="style/style.css" />
    		<link rel="stylesheet" type="text/css" href="style/theme_date/jquery-ui.css" />
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    		<script type="text/javascript" src="librairies/jquery.js"></script>
    		<script type="text/javascript" src="librairies/jquery-ui.js"></script>
    		<script type="text/javascript" src="scripts/calendrier.js"></script>
    	</head>
     
    <?php
    	//On récupère le nom de la course à l'aide de la foncion "$_GET".
    	$id_course = $_GET['id_course'];
     
    	$requete = "SELECT * FROM `bdd`.`liste_des_courses` WHERE id_course = '$id_course'";
     
    	//On test la connexion.
    	$req = mysqli_query($connexion, $requete) or die ('erreur sql!<br>'.$requete.'<br>'.mysql_error());
     
    	//Récupère une ligne de résultat sous forme de tableau.
    	$data = (mysqli_fetch_assoc($req));
     
    	$adresse_course = $data['adresse_course'];
    	$cp_course = $data['cp_course'];
    	$date = $data['date'];
    	$heure_course = $data['heure_course'];
    	$nom_course = $data['nom_course'];
    	$distance_course = $data['distance_course'];
    	$participant_course = $data['participant_course'];
    	$tarif_course = $data['tarif_course'];
    	$description_course = $data['description_course'];
    	$email_course = $data['email_course'];
    	$telephone_course = $data['telephone_course'];
    ?>
     
    	<body>
    		<!-- Ici, on va récupérer toutes les variables inscrites dans la BDD pour pouvoir les afficher dans les inputs affin que l'utilisateur n'est pas à out retaper. -->
    		<center><img src="image/14.png"></center>
    		<form id= "formulaire" method = "POST" action="">
    		<!-- Liste déroulante des départements -->
    		<fieldset>
    			<label for="adresse">Adresse<em>*</em></label>
    			<input name="adresse_course" value = "<?php echo $adresse_course ?>" required placeholder="Adresse"><br>
    			<label for="cp">Code Postal <em>*</em></label>
    			<input name="cp_course" value = "<?php echo $cp_course ?>" placeholder="Code Postal" required pattern="[0-9]{5}" oninvalid="setCustomValidity('Ne doit contenir que 5 chiffres.')" onchange="try{setCustomValidity('')}catch(e){}" /><br>
    		</fieldset>
     
    		<fieldset>
    			<legend>Informations complémentaires</legend>
    			<label for="date">Date<em>*</em></label>
    			<input type="date" name="date" value = "<?php echo $date ?>" required id="datepicker" oninvalid="setCustomValidity('Séléctionner une date.')" onchange="try{setCustomValidity('')}catch(e){}"><br>
     
    			<label for="heure">Heure<em>*</em></label>
    			<select name="heure_course" id="heure_course" required oninvalid="setCustomValidity('Séléctionner une heure pour la course.')" onchange="try{setCustomValidity('')}catch(e){}">	
    				<option><?php echo $heure_course ?></option>
    				<?php
    				for ( $heures = 9 ; $heures <= 18 ; $heures++ ) 
    				{
    				   for ( $minutes = 00 ; $minutes <= 45 ; $minutes += 30 ) 
    				   {	
    				?>
    					<option><?php echo $heures.':'.$minutes;?></option>	
    				<?php
    				   }
    				}
    				?>
    			</select><br>
     
    			<label for="nom">Nom de la course<em>*</em></label>
    			<input type="text" name="nom_course" value = "<?php echo $nom_course ?>" placeholder="Nom de course" required oninvalid="setCustomValidity('Veuillez entrer le nom de la course.')" onchange="try{setCustomValidity('')}catch(e){}" / ><br>
     
    			<label for="distance"> Distance <em>*</em></label>
    				<select name="distance_course" required>
    					<option><?php echo $distance_course ?></option>
    					<option value="5 Km">5 Km</option>
    					<option value="10 Km">10 Km</option>
    					<option value="Semi-Marathon">Semi-Marathon</option>
    					<option value="Marathon">Marathon</option>
    				</select><br>
     
    			<label for="participant">Nombre de participants<em>*</em></label>
    			<input type="number" name="participant_course" value = "<?php echo $participant_course ?>" placeholder="Participant" required min="1" max="10000"><br>
    			<label for="tarif">Tarif (en €)<em>*</em></label>
    			<input type="number" name="tarif_course" value = "<?php echo $tarif_course ?>" placeholder="Tarif" required min="0" max="10" step="0.01"><br>
    			<label for="desc">Déscription de la course<em>*</em></label><br>
    			<textarea name="description_course" required placeholder="Votre déscription"><?php echo $description_course ?></textarea><br>
    		</fieldset>
     
    		<fieldset>
    			<legend>Contact</legend>
    			<label for="email">Email <em>*</em></label>
    			<input name="email_course" value = "<?php echo $email_course ?>" placeholder="exemple@domain.com" required type="text" title="email" pattern="^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$" oninvalid="setCustomValidity('Veuillez entrer une adresse mail valide.')" onchange="try{setCustomValidity('')}catch(e){}" /><br>
    			<label for="telephone">Téléphone</label>
    			<input name="telephone_course" value = "<?php echo $telephone_course ?>" placeholder="Téléphone" pattern="[0-9]{10}" oninvalid="setCustomValidity('Ne doit contenir que 10 chiffres.')" onchange="try{setCustomValidity('')}catch(e){}" /><br>
    		</fieldset>
    		<center><p><input value="" type="submit" name="submit_modif" id="submit_modif"></p></center>
    		</form>
    	</body>
    </html>
     
    <?php
     
    //Action quand l'utilisateur clique sur le bouton valider.
    if(isset($_POST['submit_modif']))
    {		
    	//On met à jour la base et on informe l'utilisateur que la mise à jour s'est bien déroulé.
    	$sql = 
    	'UPDATE `bdd`.`liste_des_courses` 
    	SET `adresse_course` = "'.$_POST['adresse_course'].'",
    	`cp_course` = "'.$_POST['cp_course'].'",
    	`date` = "'.$_POST['date'].'", 
    	`heure_course` = "'.$_POST['heure_course'].'",
    	`nom_course` = "'.$_POST['nom_course'].'",
    	`distance_course` = "'.$_POST['distance_course'].'",
    	`participant_course` = "'.$_POST['participant_course'].'",
    	`tarif_course` = "'.$_POST['tarif_course'].'",	
    	`description_course` = "'.$_POST['description_course'].'",
    	`email_course` = "'.$_POST['email_course'].'",
    	`telephone_course` = "'.$_POST['telephone_course'].'"
    	WHERE id_course = '.$id_course.'';
     
    	$req = mysqli_query($connexion, $sql) or die ('erreur sql!<br>'.$requete.'<br>'.mysql_error());
     
    	echo
    	("
    	<SCRIPT LANGUAGE='JavaScript'>
    	        window.alert('Les informations de votre course ont bien été modifiés.')
    	        window.location.href='detail_inscription.php?nom_course=$nom_course'
            </SCRIPT>
    	");
    }
    ?>

    Pareil pour supprimer une course aussi donc ...

    Et si j’écris n'importe quoi dans la barre d'adresse j'obtiens ça :

    http://www.noelshack.com/2015-14-1427708415-capture.png

    Alors que j'aimerais retourner à l'accueil.

    Pour qu'un "coureur" puisse participer à une course j'ai suivi tes conseils Kreepz en créant une table "participation_coureurs" avec comme structure :

    http://www.noelshack.com/2015-14-1427738839-capture.png

    Les champs de cette structure prennent en paramètres les informations d'une course, par exemple en validant celle-ci j'ai ces informations qui apparaissent dans ma table "participation_coureurs" :

    http://www.noelshack.com/2015-14-1427738947-capture.png

    Le problème c'est que la participation s'affiche pour tous les coureurs et non pas seulement pour le pseudo validant l'inscription.

    Mon code :

    Code php : 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
    <?php
    	//Le visiteur ne peut pas accéder à cette page.
    	session_start();
    	if($_SESSION["role"] == "Organisateur" || $_SESSION["role"] == "Coureur")
    	{
    		//Code HTML
    	}
    	else
    	{
    		header('Location: index.php'); 
    	}
    ?>
     
     
    <?php include("commun/page.php"); ?>
    <?php include("commun/menu.php"); ?>
    <?php include("bdd/connexionBD.php"); ?>
     
    <?php
    	//Pour que les accents apparaissent.
    	mysqli_query($connexion, "SET NAMES 'utf8'"); 
    	mysqli_query($connexion, "SET CHARACTER SET 'utf8'");
    ?>
     
    <!DOCTYPE html>
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title> Informations complémentaires </title>
    		<center><img src="image/12.png"></center>
    	</head>
     
    	<body>
    		<?php
     
    			//Permet de récupérer l'id de la course pour afficher les détails de celle ci dans "detail_inscription.php"
    			$nom_course = $_GET['nom_course'];
     
    			$requete = "SELECT * FROM `bdd`.`liste_des_courses` WHERE nom_course = '$nom_course' ";
     
    			$req = mysqli_query($connexion, $requete) or die (header('Location: index.php').mysql_error());
     
    			if ($nom_course == false)
    			{
    				header('Location: index.php');
    			}
     
    			//Récupère une ligne de résultat sous forme de tableau.
    			$data = (mysqli_fetch_assoc($req));
     
    			//On récupère les variables et ...
    			$date = $data['date'];
    			$nom_course = $data['nom_course'];
    			$adresse_course = $data['adresse_course'];
    			$cp_course = $data['cp_course'];
    			$heure_course = $data['heure_course'];
    			$distance_course = $data['distance_course'];
    			$participant_course = $data['participant_course'];
    			$tarif_course = $data['tarif_course'];
    			$description_course = $data['description_course'];
    			$email_course = $data['email_course'];
    			$telephone_course = $data['telephone_course'];
    			$organisateur = $data['organisateur'];
     
    			//On les affiches.
    			echo 
    			'<center> <p id="information">
    				Organisateur : '. $organisateur.'<br><br> ',
    				'Date : '. $date .'<br><br> ',
    				'Nom : '. $nom_course .'<br><br> ',
    				'Adresse : '. $adresse_course .'<br><br> ',
    				'Code Postal : '. $cp_course .'<br><br>  ',
    				'Heure : '. $heure_course .' <br><br>  ',
    				'Distance : '. $distance_course .'<br><br>  ',
    				'Participant : '. $participant_course .'<br><br>  ',
    				'Tarif : '. $tarif_course .' €<br><br>  ',
    				'Description : '. $description_course .'<br><br>  ',
    				'Email : <a href = mailto:>  '. $email_course .'</a><br><br> ',
    				'Téléphone : '. $telephone_course .'<br><br>
    			</p></center>';
     
    			if($_SESSION["role"] == "Coureur")
    			{
    				echo '	<form id="" method="POST" action="">
    						<br><br><center><p><input value="" type="submit" name="submit_particip" id="submit_particip"></p></center>
    						<form>';
     
    				if(isset($_POST['submit_particip']))
    				{	
    					$pseudo = $_SESSION['pseudo'];
     
    					//Si tout est correct, on rentre les valeurs dans la base.
    				 	$sql = "INSERT INTO `bdd`.`participation_coureurs`
    				 	(`id_participation`, `pseudo_participant`, `organisateur`, `date`, `nom_participation_course`, `adresse_participation_course`, `cp_participation_course`, `heure_participation_course`, `distance_participation_course`, `participant_participation_course`, `tarif_participation_course`, `description_participation_course`, `email_participation_course`, `telephone_participation_course`)
    				 			VALUES ('', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
     
    				 	$stmt = mysqli_prepare($connexion, $sql);
     
    					mysqli_stmt_bind_param($stmt,'sssssssssssss', $pseudo, $organisateur, $date, $nom_course, $adresse_course, $cp_course, $heure_course, $distance_course, $participant_course, $tarif_course, $description_course, $email_course, $telephone_course);
     
    					mysqli_stmt_execute($stmt);
     
    					header('Location: mes_courses.php');
    				}
    			}
    		?>
    	</body>
    </html>

    Puis je trouve pas comment réduire le nombre de participant en fonction des inscriptions ou d'augmenter ce nombre si un coureur se désinscrit d'une course.

  9. #9
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Alors pour ton premier problème, il faut que tu utilise des session. Ainsi quand un utilisateur voudras se rendre sur une course où il n'a aucun droit tu pourras lui dire qu'il n'a pas accès à cette page. Sur ta page de modification ou suppression avant de faire quoique ce soit, tu vérifie que l'utilisateur puisse y accèder (si il est l'organisateur ou si il y participe) et si non tu le redirige vers une page d'erreur.

    Par contre, je voyais la table "participation_coureurs" plus simple, tu as sûrement une redondance d'informations entre tes tables actuelles. Pour ma part elle n'aurait contenue que 3 champs: id_participation | id_coureur | id_course
    L'id_coureur te permet de retrouver toutes les informations liées à un coureur et l'id_course aussi.

    Dans la table liste_des_courses as-tu un champ nb_place ou du même genre pour savoir le nombre de participants maximum?
    Si oui, tu n'es pas obligé de faire un update, sur la page où tu souhaites afficher le nombre de place restantes, il faut que tu récupère le nombre de participants à cette course dans la table participation_coureurs et le nombre de place dans liste_des_courses. Puis une simple soustraction t'afficheras le nombre de places restantes
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Kreepz Voir le message
    Bonjour,

    Alors pour ton premier problème, il faut que tu utilise des session. Ainsi quand un utilisateur voudras se rendre sur une course où il n'a aucun droit tu pourras lui dire qu'il n'a pas accès à cette page. Sur ta page de modification ou suppression avant de faire quoique ce soit, tu vérifie que l'utilisateur puisse y accéder (si il est l'organisateur ou si il y participe) et si non tu le redirige vers une page d'erreur.
    Je n'ai pas compris ce que tu as voulu me dire :s.

    Au début de ma page "modifier.php" ou ma page "supprimer.php" j'ai ce bout de code qui me permet de différencier les organisateurs des coureurs :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    //Seul l'organisateur peut accéder à la page.
    session_start();
    if($_SESSION["role"] == "Organisateur"){
    	//Code HTML
    }
    else{
    	header('Location: index.php'); 
    }
    ?>

    Quand un coureur essaye, par exemple, de taper dans L’URL "monsite/modifier.php etc..." il est redirigé vers l'accueil (pareil pour supprimer.php).
    En gros j'arrive pas à différencier un organisateur d'un autre.

    Citation Envoyé par Kreepz Voir le message
    Par contre, je voyais la table "participation_coureurs" plus simple, tu as sûrement une redondance d'informations entre tes tables actuelles. Pour ma part elle n'aurait contenue que 3 champs: id_participation | id_coureur | id_course
    L'id_coureur te permet de retrouver toutes les informations liées à un coureur et l'id_course aussi.
    J'aurais pu récupérer toutes les informations d'une course avec un seul champ ?

    http://www.noelshack.com/2015-14-1427830349-capture.png

    Dans l'image ci-dessus, l'utilisateur est connecté en tant que coureur, lorsque qu'il clique sur "Détail participation" il aura tous les détails de la courses à la quelle il participera :

    http://www.noelshack.com/2015-14-1427830433-capture.png

    Et encore une fois, dans la page "mes_courses" :

    http://www.noelshack.com/2015-14-1427830349-capture.png

    Je n'arrive pas à différencier un coureur d'un autre pour afficher ou non une participation, mon code de la page en question :

    Code php : 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
    <?php
    //Seul le coureur peut accéder à la page.
    session_start();
    if($_SESSION["role"] == "Coureur"){
    	//Code HTML
    }
    else{
    	header('Location: index.php'); 
    }
    ?>
    <?php include("commun/page.php"); ?>
    <?php include("commun/menu.php"); ?>
    <?php include("bdd/connexionBD.php"); ?>
    <?php
    //Pour que les accents apparaissent.
    mysqli_query($connexion, "SET NAMES 'utf8'"); 
    mysqli_query($connexion, "SET CHARACTER SET 'utf8'");
    ?>
    <!DOCTYPE html>
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title> Mes courses </title>
    		<center><img src="image/08.png"></center>
    		<style type="text/css">
    			.tableau  {margin:10px auto;border-collapse:collapse;border-spacing:0;border-color:#aabcfe;}
    			.tableau td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aabcfe;color:#669;background-color:#e8edff;}
    			.tableau th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aabcfe;color:#039;background-color:#b9c9fe;}
    			.tableau th{font-weight:bold;font-style:italic;font-family:"Arial Black", Gadget, sans-serif !important;;background-color:#656565;color:#ffffff;text-align:center}
    			.tableau td{text-align:center;}
    		</style>
    	</head>
    	<body>
    		<table class="tableau">
    			<thead> <!-- Ensemble de ligne comme "entête" du tableau -->
    				<tr>
    					<th>Date</th>
    					<th>Nom de la course<br></th>
    					<th>Département</th>
    					<th>Participant</th>
    					<th>Détail de ma participation<br></th>
    					<th>Supprimer ma participation<br></th>
    				</tr>
    <?php
    //Requête SQL permetant de trier les résultats par date.
    $requete = "SELECT * FROM `bdd`.`participation_coureurs` ORDER BY date";
    $requete = mysqli_query($connexion, $requete) or die (header('Location: index.php').mysql_error());
    while ($donnees = mysqli_fetch_array($requete)){
    	$id_participation = $donnees['id_participation'];
    	//Affiche les premières informations dans le tableau.
    	$date = $donnees['date'];
    	$nom_participation_course = $donnees['nom_participation_course'];
    	$cp_participation_course = $donnees['cp_participation_course'];
    	$participant_participation_course = $donnees['participant_participation_course'];
    ?>
    				<!--Permet d'afficher les données-->
    				<tr>
    					<td><?php echo $date; ?></td>
    					<td><?php echo $nom_participation_course; ?></td>
    					<td><?php echo $cp_participation_course; ?></td>
    					<td><?php echo $participant_participation_course; ?></td>
    					<td><?php echo '<a href="detail_participation.php?nom_participation_course='.$nom_participation_course.'">Détail participation</a>'?></td>
    					<td>
    <?php
    	if ($_SESSION["pseudo"]){
    ?>
    						<a href="supprimer_participation.php?id_participation=<?php echo $id_participation; ?>" onclick="return(confirm('Etes-vous sûr de vouloir supprimer cette course ?'));">Supprimer</a>
    <?php
    	}
    ?>
    					</td>
    				</tr>
    <?php
    }
    ?>
    </html>

    Merci pour ton aide.

  11. #11
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Tu es sur la bonne voie, lorsque tu vérifie que l'utilisateur est un organisateur, si il l'est, vérifie que ce soit bien lui qui ai créé la course.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    //Seul l'organisateur peut accéder à la page.
    session_start();
    if($_SESSION["role"] == "Organisateur"){
    	//C'est un organisateur
                   //On fait une requete SQL sur la table course                
    }
    else{
    	header('Location: index.php'); 
    }
    ?>
    Qu'enregistre tu dans tes SESSION? Il te faudrais l'id de l'utilisateur pour savoir si c'est lui qui a créé la course.
    (J'espère que c'est clair )


    Et oui tu peux récupérer toutes les informations d'une course avec un seul champ, dès que tu possède l'id_course qui doit être unique, tu auras toutes ses infos avec un SELECT * FROM courses where id_courses = idDeLaCourse;.

    Citation Envoyé par mitsukk1992
    Je n'arrive pas à différencier un coureur d'un autre pour afficher ou non une participation
    Tout ce joue sur ta requête il faut que tu récupère les courses de l'utilisateur connecté, donc dans tes SESSIONS tu devrais avoir l'id de l'utilisateur logué.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Je donne des retours, j'ai enfin réussi à régler le problème qui était de modifier une course qui n'appartenait pas à son organisateur à l'aide de ce code :

    Code php : 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
    <?php include("BDD/connexionBD.php");?>
     
    <?php
    	//Seul l'organisateur peut accéder à la page.
    	session_start();
    	if($_SESSION["role"] == "Organisateur")
    	{
    	$id_course = $_GET['id_course'];
     
            $requete = mysqli_query($connexion, 'SELECT * FROM `bdd`.`liste_des_courses` WHERE organisateur = "'.$_SESSION['pseudo'].'" AND id_course = "'.$id_course.'"') or die (header('Location: index.php').mysql_error());
     
                 if ($requete && mysqli_num_rows($requete) > 0)
        	     {
        		  //On accède au formulaire de modification.
        	     }
        	     else
        	     {
        		  header('Location: index.php');
        	     }
    	}
    	else
    	{
    		header('Location: index.php'); 
    	}
    ?>

    Ça marche aussi pour la page supprimer.php donc, merci vraiment pour ton aide .

    Par contre il me reste 2 problèmes :

    - Premier problème :

    Pour les informations complémentaires de la course :

    http://www.noelshack.com/2015-14-1427968361-capture.png

    Si je clique sur le lien encadré dans l'image ci-dessus j'accède bien à la page d'information de la course :

    http://www.noelshack.com/2015-14-1427968515-capture.png

    Et dans cette page, si j’écris n'importe quoi dans la barre d'adresse j'obtiens ça :

    http://www.noelshack.com/2015-14-1427968689-capture.png

    Alors que j'aimerais retourner à l'accueil.

    - Deuxième problème :

    En tant que compte "Coureur", j'arrive à valider une inscription à une course à partir de la liste des courses créés par les Organisateur :

    http://www.noelshack.com/2015-14-1427970312-capture.png

    En cliquant sur le lien encadré en rouge j'accède aux informations complémentaires de la course et un bouton valider qui me permet de participer à la course en question :

    http://www.noelshack.com/2015-14-142...8-capture2.png

    Les insertions des informations de la course s'insère bien dans la base de données :

    http://www.noelshack.com/2015-14-142...3-capture3.png

    Et dans la page "Mes Courses" (mes_courses.php) :

    http://www.noelshack.com/2015-14-142...5-capture4.png

    J'ai seulement une participation qui s'affiche alors que l'on peut voir, dans ma table de participation, que le Coureur1 participe à deux courses (la Course 1 et la Course 2) :

    http://www.noelshack.com/2015-14-142...8-capture3.png

    J'ai vu que en réalité, la page "mes_courses.php" affiche seulement la première course valider et non les autres.

    Par exemple si j'efface les données de ma table participation et que je m'inscris à une course avec un compte coureur quelconque, celle-ci s'affiche bien seulement pour le coureur qui désire participer à la course mais si il désire participer à d'autres courses, elles s'inscrivent dans ma table mais ne s'affiche pas, voilà mon code :

    Code php : 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
    <?php
    	//Seul le coureur peut accéder à la page.
    	session_start();
    	if($_SESSION["role"] == "Coureur")
    	{
    		//Code HTML
    	}
    	else
    	{
    		header('Location: index.php'); 
    	}
    ?>
     
    <?php include("commun/page.php"); ?>
    <?php include("commun/menu.php"); ?>
    <?php include("bdd/connexionBD.php"); ?>
     
    <?php
    	//Pour que les accents apparaissent.
    	mysqli_query($connexion, "SET NAMES 'utf8'"); 
    	mysqli_query($connexion, "SET CHARACTER SET 'utf8'");
    ?>
     
    <!DOCTYPE html>
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title> Mes courses </title>
    		<center><img src="image/08.png"></center>
    		<style type="text/css">
    			.tableau  {margin:10px auto;border-collapse:collapse;border-spacing:0;border-color:#aabcfe;}
    			.tableau td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aabcfe;color:#669;background-color:#e8edff;}
    			.tableau th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aabcfe;color:#039;background-color:#b9c9fe;}
    			.tableau th{font-weight:bold;font-style:italic;font-family:"Arial Black", Gadget, sans-serif !important;;background-color:#656565;color:#ffffff;text-align:center}
    			.tableau td{text-align:center;}
    		</style>
    	</head>
    	<body>
    		<table class="tableau">
    			<thead> <!-- Ensemble de ligne comme "entête" du tableau -->
    				<tr>
    					<th>Date</th>
    					<th>Nom de la course<br></th>
    					<th>Département</th>
    					<th>Participant</th>
    					<th>Détail de ma participation<br></th>
    					<th>Supprimer ma participation<br></th>
    				</tr>
     
    				<?php
    					//Requête SQL permetant de trier les résultats par date.
    					$requete = "SELECT * FROM `bdd`.`participation_coureurs` ORDER BY date";
    					$requete = mysqli_query($connexion, $requete) or die (header('Location: index.php').mysql_error());
     
     
    					$donnees = mysqli_fetch_array($requete);
     
    					$id_participation = $donnees['id_participation'];
    					//Affiche les premières informations dans le tableau.
    					$date = $donnees['date'];
    					$nom_participation_course = $donnees['nom_participation_course'];
    					$cp_participation_course = $donnees['cp_participation_course'];
    					$participant_participation_course = $donnees['participant_participation_course'];
     
    					$requete = mysqli_query($connexion, 'SELECT * FROM `bdd`.`participation_coureurs` WHERE pseudo_participant = "'.$_SESSION['pseudo'].'" AND id_participation = "'.$id_participation.'"') or die ('erreur sql! '.$req.''.mysql_error());
     
    					if ($requete && mysqli_num_rows($requete) > 0)
    					{
    						while ($donnees = mysqli_fetch_array($requete))
    						{
    				?>
    							<!--Permet d'afficher les données-->
    							<tr>
    								<td><?php echo $date; ?></td>
    								<td><?php echo $nom_participation_course; ?></td>
    								<td><?php echo $cp_participation_course; ?></td>
    								<td><?php echo $participant_participation_course; ?></td>
    								<td><?php echo '<a href="detail_participation.php?nom_participation_course='.$nom_participation_course.'">Détail participation</a>'?></td>
    								<td><a href="supprimer_participation.php?id_participation=<?php echo $id_participation; ?>" onclick="return(confirm('Etes-vous sûr de vouloir supprimer cette course ?'));">Supprimer</a></td>
    							</tr>
    				<?php   }
     
    					}
     
    					else
    					{
     
    					}
    				?>
     
    </html>

    Après ces deux problèmes résolus, j'aurais quasiment fini mon projet, il me manquera juste de réduire ou d'augmenter le nombre de participant en fonction des inscription/désinscription.

  13. #13
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si tu rentre n'importe quoi dans ta barre d'adresse, lorsque tu fais la vérification pour récupérer les informations de la course, tu peux dire, si j'ai des informations tu lui affiche la page demandée, mais si je n'ai pas d'informations -> j'affiche un beau message d'erreur ou je le redirige.

    Et pour ton seconde problème il vient de ta requête:

    SELECT * FROM `bdd`.`participation_coureurs` WHERE pseudo_participant = "'.$_SESSION['pseudo'].'" AND id_participation = "'.$id_participation.'"
    Tu lui dis, renvoie moi la course du coureur n°... et de sa participation n°... la base de données de pourras te renvoyer qu'une seule ligne.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Kreepz Voir le message
    Bonjour,

    Si tu rentre n'importe quoi dans ta barre d'adresse, lorsque tu fais la vérification pour récupérer les informations de la course, tu peux dire, si j'ai des informations tu lui affiche la page demandée, mais si je n'ai pas d'informations -> j'affiche un beau message d'erreur ou je le redirige.
    Pour contrer le problème j'avais mis en place une solution où je compte le nombre de ligne de ma table à l'aide de la fonction select count(*), le problème avec cette méthode c'est qu'elle compte le nombre d'id et donc si dans ma table il y a 2 champs, un avec un id=1 et l'autre id=4, pour la course comprenant l'id 4 je serais redirigé vers l'accueil.

    Citation Envoyé par Kreepz Voir le message
    Tu peux dire, si j'ai des informations tu lui affiche la page demandée, mais si je n'ai pas d'informations -> j'affiche un beau message d'erreur ou je le redirige.
    Ça se fait à l'aide d'une requête ?

    Mon code qui vérifie les informations d'une course :

    Code php : 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
    			//Permet de récupérer l'id de la course pour afficher les détails de celle ci dans "detail_inscription.php"
    			$id_course = $_GET['id_course'];
     
    			$requete = "SELECT * FROM `bdd`.`liste_des_courses` WHERE id_course = '$id_course' ";
     
    			$req = mysqli_query($connexion, $requete) or die (header('Location: index.php').mysql_error());
     
    			if ($id_course == false)
    			{
    				header('Location: index.php');
    			}
     
    			//Récupère une ligne de résultat sous forme de tableau.
    			$data = (mysqli_fetch_assoc($req));
     
    			//On récupère les variables et ...
    			$date = $data['date'];
    			$nom_course = $data['nom_course'];
    			$adresse_course = $data['adresse_course'];
    			$cp_course = $data['cp_course'];
    			$heure_course = $data['heure_course'];
    			$distance_course = $data['distance_course'];
    			$participant_course = $data['participant_course'];
    			$tarif_course = $data['tarif_course'];
    			$description_course = $data['description_course'];
    			$email_course = $data['email_course'];
    			$telephone_course = $data['telephone_course'];
    			$organisateur = $data['organisateur'];
     
    			//On les affiches.
    			echo 
    			'<center> <p id="information">
    				Organisateur : '. $organisateur.'<br><br> ',
    				'Date : '. $date .'<br><br> ',
    				'Nom : '. $nom_course .'<br><br> ',
    				'Adresse : '. $adresse_course .'<br><br> ',
    				'Code Postal : '. $cp_course .'<br><br>  ',
    				'Heure : '. $heure_course .' <br><br>  ',
    				'Distance : '. $distance_course .'<br><br>  ',
    				'Participant : '. $participant_course .'<br><br>  ',
    				'Tarif : '. $tarif_course .' €<br><br>  ',
    				'Description : '. $description_course .'<br><br>  ',
    				'Email : <a href = mailto:>  '. $email_course .'</a><br><br> ',
    				'Téléphone : '. $telephone_course .'<br><br>
    			</p></center>';

    Cette partie là de mon code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			if ($id_course == false)
    			{
    				header('Location: index.php');
    			}

    Permet de faire en sorte que si il n'y a pas de "=" dans l'URL, je retourne à l'accueil, exemple :

    http://localhost/site/detail_inscrip...hp?id_course=1 Fonctionne
    http://localhost/site/detail_inscription.php?id_course Redirection Accueil

    C'est cette partie là qu'il faut que je développe pour résoudre mon problème ?

    Citation Envoyé par Kreepz Voir le message
    Et pour ton seconde problème il vient de ta requête:

    SELECT * FROM `bdd`.`participation_coureurs` WHERE pseudo_participant = "'.$_SESSION['pseudo'].'" AND id_participation = "'.$id_participation.'"
    Tu lui dis, renvoie moi la course du coureur n°... et de sa participation n°... la base de données de pourras te renvoyer qu'une seule ligne.
    Il faut que je mette la requête dans une boucle ? Sinon j'ai pas d'idée pour ça ...

  15. #15
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Pour savoir si la requête te renvoie des lignes tu peux te renseigner sur la fonction mysql_num_rows. Et c'est bien sur la partie que tu as citée.

    Et pour la requête elle esy fausse, il faut que tu récupère toutes les participations d'un coureur. Tu as une condition en trop:

    SELECT * FROM `bdd`.`participation_coureurs` WHERE pseudo_participant = "'.$_SESSION['pseudo'].'"
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Cette requête :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysqli_query($connexion, 'SELECT * FROM `bdd`.`participation_coureurs` WHERE pseudo_participant = "'.$_SESSION['pseudo'].'"');

    m'affiche :

    http://www.noelshack.com/2015-14-1427985201-capture.png

    Alors que dans ma table je participe à la "Course 1" et à la "Course 2" :

    http://www.noelshack.com/2015-14-1427985336-capture.png

    Si je supprime une de mes participation, j'ai la "Course 2" qui s'affiche.

  17. #17
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    L'intérieur de ton while est faux:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php 
    while ($donnees = mysqli_fetch_array($requete))
    { ?>
        <tr>
    	<td><?php echo $date; ?></td>
    	<td><?php echo $nom_participation_course; ?></td>
    	<td><?php echo $cp_participation_course; ?></td>
    	<td><?php echo $participant_participation_course; ?></td>
    	<td><?php echo '<a href="detail_participation.php?nom_participation_course='.$nom_participation_course.'">Détail participation</a>'?></td>
    	<td><a href="supprimer_participation.php?id_participation=<?php echo $id_participation; ?>" onclick="return(confirm('Etes-vous sûr de vouloir supprimer cette course ?'));">Supprimer</a></td>
        </tr>
    <?php } ?>

    Regarde bien
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Je vois pas où est l'erreur ^^' ...

  19. #19
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Ton $donnees contient la première ligne renvoyée par ta requête SQL.
    Donc tu devrais utiliser ce $donnees pour afficher tes données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    while ($donnees = mysqli_fetch_array($requete))
    { ?>
        <tr>
    	<td><?php echo $donnees['date']; ?></td> //tu mets entre crochets ce que tu demande dans ta requête. Champs date, ou autres. 
        </tr>
    <?php } ?>
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 236
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup c'était exactement ça le problème .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/11/2007, 22h23
  2. Creation d'un formulaire permettant d'ajouter des information dans une autre fenêtre
    Par @rno0059 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/06/2007, 07h47
  3. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  4. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06
  5. afficher une autre page apres le clic d1 bouton submit
    Par tramacere dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo