Comment afficher les détails d une écriture de base de donnée dans une autre pag

Résolu
flexi2202 -  
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous

je viens de créer une base de donnée que j arrive a alimenter avec un formulaire
dans cette table il y +- 25 colonnes

ensuite je parviens a récupérer les données dans une liste

mais je n ai pas assez de place sur la ligne pour tout afficher de façon correcte
d ou l idée d avoir deux pages la première un résumé pour chaque id
donc j aurais
id prenom nom adresse mail
et la deuxieme le detail pour chaque id donc
id prenom nom adresse mail loisirs travail hobbies vacances

la ou je bloque c est pour la redirection vers la page 2 et un lien de la page 1 vers la 2

de tel facon que quand l id 1 clic sur detail sa page de detail apparait
si c est id 2 ben c est sa feuille de detail qui apparait

merci de l aide

voici les codes

database.php

<?php
$servername='localhost';
$username='root';
$password='';
$dbname = "detail";
$conn=mysqli_connect($servername,$username,$password,"$dbname");
if(!$conn){
   die('Could not Connect My Sql:' .mysql_error());
}
?>



insert.php

<!DOCTYPE html>
<html>
  <body>
	<form method="post" action="process.php">
		First name:<br>
		<input type="text" name="first_name">
		<br>
		Last name:<br>
		<input type="text" name="last_name">
		<br>
		City name:<br>
		<input type="text" name="city_name">
		<br>
		Email Id:<br>
		<input type="email" name="email">
		<br><br>
		<input type="loisirs" name="loisirs">
		<br><br>
		<input type="travail" name="travail">
		<br><br>
		<input type="hobbies" name="hobbies">
		<br><br>
		<input type="vacances" name="vacances">
		<br><br>
		<input type="submit" name="save" value="submit">
	</form>
  </body>
</html>
 



process.php

<?php
include_once 'database.php';
if(isset($_POST['save']))
{	 
	 $first_name = $_POST['first_name'];
	 $last_name = $_POST['last_name'];
	 $city_name = $_POST['city_name'];
	 $email = $_POST['email'];
	 $email = $_POST['loisirs'];
	 $email = $_POST['travail'];
	 $email = $_POST['hobbies'];
	 $email = $_POST['vacances'];
	 $sql = "INSERT INTO employee (first_name,last_name,city_name,email,loisirs,travail,hobbies,vacances)
	 VALUES ('$first_name','$last_name','$city_name','$email','$loisirs','$travail','$hobbies','$vacances')";
	 if (mysqli_query($conn, $sql)) {
		echo "New record created successfully !";
	 } else {
		echo "Error: " . $sql . "
" . mysqli_error($conn);
	 }
	 mysqli_close($conn);
}
?>

recuperation.php
<?php
include_once 'database.php';
$result = mysqli_query($conn,"SELECT * FROM employee");
?>
<!DOCTYPE html>
<html>
 <head>
 <title> Retrive data</title>
 </head>
<body>
<?php
if (mysqli_num_rows($result) > 0) {
?>
  <table>
  
  <tr>
    <td>First Name</td>
    <td>Last Name</td>
    <td>City</td>
    <td>Email id</td>
  </tr>
<?php
$i=0;
while($row = mysqli_fetch_array($result)) {
?>
<tr>
    <td><?php echo $row["first_name"]; ?></td>
    <td><?php echo $row["last_name"]; ?></td>
    <td><?php echo $row["city_name"]; ?></td>
    <td><?php echo $row["email"]; ?></td>
</tr>
<?php
$i++;
}
?>
</table>
 <?php
}
else{
    echo "No result found";
}
?>
 </body>
</html>
A voir également:

7 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu places, sur chaque ligne, un lien (contenant l'id)
  
  <tr>
    <td>First Name</td>
    <td>Last Name</td>
    <td>City</td>
    <td>Email id</td>
    <td></td>
  </tr>
<?php
$i=0;
while($row = mysqli_fetch_array($result)) {
?>
<tr>
    <td><?php echo $row["first_name"]; ?></td>
    <td><?php echo $row["last_name"]; ?></td>
    <td><?php echo $row["city_name"]; ?></td>
    <td><?php echo $row["email"]; ?></td>
    <td>
         <a href='chemin/vers/ton/autre/page.php?id=<?php echo $row["id"]; ?>'>Voir</a>
    </td>
</tr>
<?php
$i++;
}
?>


Et dans ton autre page, il te suffit de récupérer l'id qui se trouvera dans l'url en utilisant la variable $_GET

$id = !empty($_GET['id']) ? $_GET['id']: NULL;


Ne te reste plus qu' à faire une requête en utilisant l'id dans le WHERE puis à générer l'affichage voulu.

.
1
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
bonjour Jordane

déjà un très grand merci pour la réponse

il est vrai que je me suis inspire d un tuto

en utilisant id dans le WHERE , pourrais je avoir un exemple stp
0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
ah peut etre de cette facon

$sql = "SELECT * FROM `detail` WHERE `id` = $id";
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Oui
0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
merci pour l aide
donc si je comprends bien
mon code de cette page serait simplement
<?php
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
$sql = "SELECT * FROM `detail` WHERE `id` = $id";

?>

pour afficher toutes les données de ma table
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
bah non....
il faut la connexion à la bdd
exécuter la requête
boucler sur les infos retournées par la requête pour afficher les infos voulues ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
merci pour l aide
ah ben oui autrement cela aurait ete trop facile
dommage que l on en parle pas dans les tutos de ce cas de figure
donc si je comprends bien c est presque un copier coller de la page de recuperation.php

<?php
include_once 'database.php';
$result = mysqli_query($conn,"SELECT * FROM detail");
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
$sql = "SELECT * FROM `detail` WHERE `id` = $id";

?>
<!DOCTYPE html>
<html>
 <head>
 <title> Retrive data</title>
 </head>
<body>
<?php
if (mysqli_num_rows($result) > 0) {
?>
  <table>
  
  <tr>
    <td>loisirs</td>
    <td>travail</td>
    <td>hobbies</td>
    <td>vacances</td>
  </tr>
<?php
$i=0;
while($row = mysqli_fetch_array($result)) {
?>
<tr>
    <td><?php echo $row["loisirs"]; ?></td>
    <td><?php echo $row["travail"]; ?></td>
    <td><?php echo $row["hobbies"]; ?></td>
    <td><?php echo $row["vacances"]; ?></td>
</tr>
<?php
$i++;
}
?>
</table>
 <?php
}
else{
    echo "No result found";
}
?>
 </body>
</html>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu n'utilises pas ta variable $sql ?

Il faut que tu déplaces ta ligne 3 sous ta ligne 5
Que tu remplaces la requête qui s'y trouve par ta variable $sql

Ensuite, soit tu fais l'affichage sous forme de tableau.... soit.. ben tu présentes le résultat autrement...
A toi de voir.
0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
Merci pour ton aide jordane
voila je pense que c est bon a présent

<?php
include_once 'database.php';
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
$sql = "SELECT * FROM `employee` WHERE `id` = $id";
$sql = mysqli_query($conn,"SELECT * FROM employee");
?>


<!DOCTYPE html>
<html>
 <head>
 <title> Retrive data</title>
 </head>
<body>
<?php
if (mysqli_num_rows($sql) > 0) {
?>
  <table>
  
  <tr>
    <td>loisirs</td>
    <td>travail</td>
    <td>hobbies</td>
    <td>vacances</td>
  </tr>
<?php
$i=0;
while($row = mysqli_fetch_array($sql)) {
?>
<tr>
    <td><?php echo $row["loisirs"]; ?></td>
    <td><?php echo $row["travail"]; ?></td>
    <td><?php echo $row["hobbies"]; ?></td>
    <td><?php echo $row["vacances"]; ?></td>
</tr>

</table>
 <?php
}
{
    echo "No result found";
}
?>
 </body>
</html>
0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
alors voila pour tous ceux que cela intéresse

le lien qui me permet de voir les détails dans une autre page

cela est un exemple bien entendu ...

est <a href="https:///essai-03-02-21/detail.php?pseudo=<?= $donnees['pseudo'] ?>&id=<?= $donnees['id'] ?>"> <img src="http://wca/images2/640.jpg" alt="" /> </a
0