Affichage des des données entre deux tables
Posté : 19 juin 2019, 09:54
Bonjour,
Je sollicite une nouvelle fois la communauté pour poursuivre ma formation.
J'ai un projet de gestion d'un stand de tir.
J'ai crée une base de donnée "tir" qui comprend deux tables "tireur" et "pistolet"
J'ai créé un formulaire de recherche par nom de tireur qui m'affiche les infos des deux tables (si la table "pistolet est videil n'affiche rien)
Modifier la fiche tireur fonctionne sans soucis par contre quand je veux compléter le fiche de tir modifiertir.php mon formulaire m'affiche bien l'identité du tireur issu de la recherche mais il m'affiche les tirs de la ligne 1 de ma table pistolet,
mon formulaire modifiertir.php
Merci de votre aide
Eric
Je sollicite une nouvelle fois la communauté pour poursuivre ma formation.
J'ai un projet de gestion d'un stand de tir.
J'ai crée une base de donnée "tir" qui comprend deux tables "tireur" et "pistolet"
Structure de la table `tireur`
--
DROP TABLE IF EXISTS `tireur`;
CREATE TABLE IF NOT EXISTS `tireur` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) NOT NULL,
`prenom` varchar(20) NOT NULL,
`ville` varchar(40) NOT NULL,
`licence` varchar(7) NOT NULL,
`mail` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
Structure de la table `pistolet`
--
DROP TABLE IF EXISTS `pistolet`;
CREATE TABLE IF NOT EXISTS `pistolet` (
`idpist` int(11) NOT NULL AUTO_INCREMENT,
`id_tireur` int(11) NOT NULL,
`tir1` int(11) NOT NULL,
`date1` date NOT NULL,
`tir2` int(11) NOT NULL,
`date2` date NOT NULL,
`tir3` int(11) NOT NULL,
`date3` date NOT NULL,
`tir4` int(11) NOT NULL,
`date4` date NOT NULL,
`tir5` int(11) NOT NULL,
`date5` date NOT NULL,
`tir6` int(11) NOT NULL,
`date6` date NOT NULL,
PRIMARY KEY (`idfonc`),
KEY `id_tireur` (`id_tireur`)
)
J'ai crée une vue relationnelle entre c'est deux table entre pistolet.id_tireur et tireur.id.J'ai créé un formulaire de recherche par nom de tireur qui m'affiche les infos des deux tables (si la table "pistolet est videil n'affiche rien)
<?php
include_once 'dbconfig.php';
if (isset($_GET['q']) && !empty($_GET['q']))
{
$q = htmlspecialchars($_GET['q']);
//$articles = $DB_con->query('SELECT * FROM tireur WHERE nom LIKE "%'.$q.'%" ORDER BY id DESC');
$articles = $DB_con->query('SELECT * FROM tireur LEFT JOIN pistolet ON tireur.id = pistolet.id_tireur WHERE nom LIKE "%'.$q.'%" ORDER BY id DESC');
}
?>
<!DOCTYPE html>
<html lang="fr-FR">
<head>
<title>Rechercher un tireur</title>
<meta charset= "utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/home.css" type="text/css" />
<!--<link rel="stylesheet" href="print.css" type="text/css" />-->
</head>
<body id="fond">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<div class="hauteur">
<h1>Rechercher par nom</h1>
<div class="rechercheuser">
<form method="GET">
<input type="search" name="q" placeholder="Recherche...par NOM" />
<input type="submit" value="Valider" />
</form>
</div>
<?php if(isset($articles) && $donnees = $articles->fetch()): ?>
<div class="rechercheuser">
<h2>Résultat de votre recherche : </h2><br/>
Le <?php echo $donnees['nom']; ?> <?php echo $donnees['prenom']; ?> <?php echo $donnees['ville']; ?><br/>
Licence : <?php echo $donnees['licence'];?></br>
Adresse de messagerie: <?php echo $donnees['mail'];?></br>
TIR <br/>
Date du 1er tir :<?php echo $donnees['date1']; ?><br/>
Résultat du 1er tir :<?php echo $donnees['tir1']; ?><br/>
Date du 2eme tir :<?php echo $donnees['date2']; ?><br/>
Résultat du 2eme tir :<?php echo $donnees['tir2']; ?><br/>
Date du 3eme tir :<?php echo $donnees['date3']; ?><br/>
Résultat du 3eme tir :<?php echo $donnees['tir3']; ?><br/>
Date du 4eme tir :<?php echo $donnees['date4']; ?><br/>
Résultat du 4eme tir :<?php echo $donnees['tir4']; ?><br/>
Date du 5eme tir :<?php echo $donnees['date5']; ?><br/>
Résultat du 5eme tir :<?php echo $donnees['tir5']; ?><br/>
Date du 6eme tir :<?php echo $donnees['date6']; ?><br/>
Résultat du 6eme tir :<?php echo $donnees['tir6']; ?><br/>
<a href="modifier.php?number=<?php echo $donnees['id']; ?>">Modifier la fiche</a></br>
<a href="modifiertir.php?number=<?php echo $donnees['id']; ?>">Modifier-compléter la fiche de tir</a></br>
<!-- <a href="imprimer.php?number=<?php //echo $donnees['id']; ?>">Imprimer la fiche</a>-->
</div>
<?php endif;?>
</div>
<?php
include('footer.php');
?>
</body>
</html>
En bas de page je peux modifier la fiche tireur ou compléter le fiche de tir.Modifier la fiche tireur fonctionne sans soucis par contre quand je veux compléter le fiche de tir modifiertir.php mon formulaire m'affiche bien l'identité du tireur issu de la recherche mais il m'affiche les tirs de la ligne 1 de ma table pistolet,
mon formulaire modifiertir.php
<?php
// Connexion à la base de données
include_once 'dbconfig.php';
// On récupère les donnée de l'article sélectionné
$reponse = $DB_con->prepare('SELECT * FROM tireur, pistolet WHERE tireur.id = ?');
$reponse->execute(array($_GET['number']));
while ($donnees = $reponse->fetch())
{
?>
<!DOCTYPE html>
<html lang="fr-FR">
<head>
<title>Modifier une fiche tireur</title>
<meta charset= "utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/home.css" type="text/css" />
</head>
<body id="fond">
<?php
include('header.php');
include('menu.php');
?>
<div>
<h1>Modifier une fiche tir-tireur</h1>
</div>
<!--Formulaire avec les champs préremplis-->
<p>
<form id="modifieruser" action="modifiertir_post.php" method="post">
<label class="modifier" for="nom">Nom :</label><input id="modif" type="text" name="nom" size="50" value="<?php echo $donnees['nom'];?>"/><br/>
<label class="modifier" for="prenom">Prénom :</label><input id="modif" type="text" name="prenom" size="50" value="<?php echo $donnees['prenom'];?>"/><br/>
<label class="modifier" for="tir1">tir1</label><input id="modif" type="text" name="tir1" size="50" value="<?php echo $donnees['tir1'];?>"/><br/>
<label class="modifier" for="date1">date1 :</label><input id="modif" type="date" name="date1" size="50" value="<?php echo $donnees['date1'];?>"/><br/>
<label class="modifier" for="tir2">tir2</label><input id="modif" type="text" name="tir2" size="50" value="<?php echo $donnees['tir2'];?>"/><br/>
<label class="modifier" for="date2">date2 :</label><input id="modif" type="date" name="date2" size="50" value="<?php echo $donnees['date2'];?>"/><br/>
<label class="modifier" for="tir3">tir3</label><input id="modif" type="text" name="tir3" size="50" value="<?php echo $donnees['tir3'];?>"/><br/>
<label class="modifier" for="date3">date3 :</label><input id="modif" type="date" name="date3" size="50" value="<?php echo $donnees['date3'];?>"/><br/>
<label class="modifier" for="tir4">tir4</label><input id="modif" type="text" name="tir4" size="50" value="<?php echo $donnees['tir4'];?>"/><br/>
<label class="modifier" for="date4">date4 :</label><input id="modif" type="date" name="date4" size="50" value="<?php echo $donnees['date4'];?>"/><br/>
<label class="modifier" for="tir5">tir5</label><input id="modif" type="text" name="tir5" size="50" value="<?php echo $donnees['tir5'];?>"/><br/>
<label class="modifier" for="date5">date5 :</label><input id="modif" type="date" name="date5" size="50" value="<?php echo $donnees['date5'];?>"/><br/>
<label class="modifier" for="tir6">tir6</label><input id="modif" type="text" name="tir6" size="50" value="<?php echo $donnees['tir6'];?>"/><br/>
<label class="modifier" for="date6">date6 :</label><input id="modif" type="date" name="date6" size="50" value="<?php echo $donnees['date6'];?>"/><br/>
<label class="modifier" for="id">Id :</label><input id="modif" type="text" name="id" size="50" value="<?php echo $donnees['id'];?>"/><br/>
<input type="submit" class="button" value="VALIDER" />
</p>
<?php
}
$reponse->closeCursor();
?>
</form>
<?php
include('footer.php');
?>
</body>
</html>
et mon code modifiertir_post.php<?php
include_once 'dbconfig.php';
$reponse = $DB_con->prepare('UPDATE `pistolet` SET
`tir1`= :Ntir1,`date1`= :Ndate1,`tir2`= :Ntir2,`date2`= :Ndate2,`tir3`= :Ntir3,`date3`= :Ndate3,
`tir4`= :Ntir4,`date4`= :Ndate4,`tir5`= :Ntir5, `date5`= :Ndate5,`tir6`= :Ntir6,`date6`= :Ndate6
WHERE `id_tireur` = :Nid ');
$reponse->execute(array('Ntir1' => $_POST['tir1'],
'Ndate1' => $_POST['date1'],
'Ntir2' => $_POST['tir2'],
'Ndate2' => $_POST['date2'],
'Ntir3' => $_POST['tir3'],
'Ndate3' => $_POST['date3'],
'Ntir4' => $_POST['tir4'],
'Ndate4' => $_POST['date4'],
'Ntir5' => $_POST['tir5'],
'Ndate5' => $_POST['date5'],
'Ntir6' => $_POST['tir6'],
'Ndate6' => $_POST['date6'],
'Nid' => $_POST['id']));
$reponse->closeCursor();
header('Location: index.php');
?>
J’espère avoir été clair.Merci de votre aide
Eric