Le mieux est de présenter tes fiches sous forme de table dynamique (qui s'incrémente automatiquement après chaque ajout de fiche)
Voici un modèle proposé:
Programme:
fiches.php
<style>
body {font-family:verdana}
table {font-size:12}
#titre {font-size:16; background:silver; color:blue; height:40px; vertical-align:middle}
#form_fiche input, #detail td {border-style:solid; border-width:1px; border-color:maroon}
#nombre_fiches {font-size:12; font-style:italic; color:green}
#message {font-size:10; font-style:italic; color:red}
#nom, #prenom {text-align: left}
#age {text-align: right}
</style>
<table id="fiches">
<tr><th id="titre" colspan="3">Formulaire de Fiche</th></tr>
<tr id="entete"><th id="nom">Nom</th><th id="prenom">Prénom</th><th id="age">Age</th></tr>
<tr id="form_fiche"><form method="GET">
<td><input type="text" id="nom" name="nom" /></td>
<td><input type="text" id="prenom" name="prenom" /></td>
<td><input type="text" id="age" name="age" /></td>
</tr><tr>
<th colspan="3"><input type="submit" name="action" value="Ajouter" /></th>
</form></tr>
<tr><th id="titre" colspan="3">Liste des Fiches</th></tr>
<?php
//*********************************
// 1° Effectuer l'ajout d'une nouvelle fiche
//*********************************
// Récupérer les champs de la fiche saisie s'ils sont envoyés par le formulaire
$action = isset($_GET["action"]) ? $_GET["action"] : null;
$nom = isset($_GET["nom"]) ? $_GET["nom"] : null;
$prenom = isset($_GET["prenom"]) ? $_GET["prenom"] : null;
$age = isset($_GET["age"]) ? $_GET["age"] : null;
// Enregistrer les champs récupérés dans la base de données si l'action est : Ajouter
$message = ""; // message à retourner concernant le résultat de l'exécution
if ($action == "Ajouter" && $nom != null && $prenom != null && $age != null) {
$sql = sprintf( "INSERT INTO matable (nom, prenom, age) VALUES ('%s', '%s', '%s')", $nom, $prenom, $age);
if (@mysql_db_query('mabase', $sql, @mysql_connect('localhost', 'root', ''))){
$message = "Fiche ajoutée avec succès.";
} // fin if
} // fin if
//********************************************
// 2° Afficher la liste des fiches existantes dans la base
//********************************************
// Extraire les données des fiches existantes
$sql = "SELECT nom, prenom, age FROM matable";
$result = @mysql_db_query('mabase', $sql, @mysql_connect('localhost', 'root', ''));
while ($result && $row = @mysql_fetch_array($result)){
echo sprintf("<tr id='detail'><td id='nom'>%s</td><td id='prenom'>%s</td><td id='age'>%s</td></tr>", $row["nom"], $row["prenom"], $row["age"]);
} // fin while
$nb_fiches = @mysql_num_rows($result);
echo sprintf("<tr><th id='titre' colspan='3'>%s fiche(s) enregistrée(s)</th></tr>", ($nb_fiches != null ? $nb_fiches : 0));
?>
<tr id="pied"><th id="message" colspan="3"><?php echo isset($message) ? $message : null; ?></th></tr>
</table>
Et voici la structure de la base de données de l'exemple:
Code : Tout sélectionner
-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 23 Avril 2009 Ã 23:28
-- Version du serveur: 5.1.33
-- Version de PHP: 5.2.9-2
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `mabase`
--
CREATE DATABASE `mabase` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `mabase`;
-- --------------------------------------------------------
--
-- Structure de la table `matable`
--
-- Création: Jeu 23 Avril 2009 à 22:28
-- Dernière modification: Jeu 23 Avril 2009 Ã 23:12
--
CREATE TABLE IF NOT EXISTS `matable` (
`nom` varchar(50) DEFAULT NULL,
`prenom` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
UNIQUE KEY `fiche_unique` (`nom`,`prenom`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `matable`
--
INSERT INTO `matable` (`nom`, `prenom`, `age`) VALUES
('Einstein', 'Albert', 130),
('Monroe', 'Marilyn', 83),
('Champlin', 'Charlie', 120),
('Lagaffe', 'Gaston', 52),
('Sissoko', 'Momo', 24);