ajout dans une table

nasdrovia70
Invité n'ayant pas de compte PHPfrance

23 avr. 2009, 15:11

Code : Tout sélectionner

Bonjour, j'espère que quelqu'un pourra m'aider, je vais essayer d'être clair. j'ai une table, j'ai un formulaire pour ajouter des fiche de données dans cette table et il marche. formulaire = "ajouter une fiche" nom:........... ma table = nom prenom age prénom:........... **** ****** ** age:........... **** ****** ** j'aimerai maintenant pouvoir choisir le nombre de fiche a entrée. formulaire = choisir le nombre de fiche a rentrée ex:(3) [Valider] nom:........... prénom:........... age:........... nom:........... prénom:........... age:........... nom:........... prénom:........... age:........... j'espère avoir été clair merci.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

23 avr. 2009, 23:21

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);
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

nasdrovia70
Invité n'ayant pas de compte PHPfrance

24 avr. 2009, 09:01

Code : Tout sélectionner

merci de ta réponse je me suis peut etre mal exprimer,c'est un poil différent. Ce que j'aimerai c'est que quand je tombe sur ton formulaire j'ai le choix de rentrée un chiffre qui correspond au nombre d'entrée que je veux ajouter. nom:dupont prenom......... age........ "combien de fiche voulez vous ajouter" :ex: 1 [Valider] la fiche s'ajoute sinon "combien de fiche voulez vous ajouter" : ex: 3 [Valider] et la je peux remplir le reste sans a avoir a retaper dupont nom:dupont prenom......... age........ nom:dupont prenom......... age........ nom:dupont prenom......... age........ [Valider] j'espère avoir été plus clair merci.
[/code]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 avr. 2009, 15:19

Et qu'est ce qui te pose soucis ?

Mettre en place un champ de saisie ou de sélection qui va permettre à l'utilisateur de choisir le nombre de fiches à ajouter ?
Récupérer la valeur saisie par l'utilisateur ?
Afficher ton formulaire dans une boucle dont le nombre d'itération dépendra de la valeur spécifiée ?
Enregistrer les données des fiches ?

Ps : merci d'utiliser les balises

Code : Tout sélectionner

et/ou [php] pour le code uniquement ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

nasrovia70
Invité n'ayant pas de compte PHPfrance

24 avr. 2009, 18:35

j'ai réussi,j'ai fait une condition qui affiche 1 fiche si je met 1 et sinon une boucle si je met plus, les données sont récupèré tout va bien, quand j'ai qu'une fiche ça s'ajoute mais j'ai un doute quand j'ai plusieurs fiche d'un coup a ajouter.
y a t'il une requête particulière faut il que je mette le form action dans la boucle ce qui ferai plusieurs formulaire a rentrée dans la base d 'un coup ou en dehors pour toute mes fiche en même temps.