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

PHP & Base de données Discussion :

[PHP - MYSQL] Tableau formulaire + Back Office


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 87
    Par défaut [PHP - MYSQL] Tableau formulaire + Back Office
    Bonjour,

    Débutant en PHP et MYSQL, je me permets de créer cette discussion pour demander votre aide.

    J'ai pour but de créer un tableau qui va récupérer des valeurs en base afin de les afficher en html puis, la où ça se complique pour moi, faire en sorte de pouvoir ajouter des données en base grâce à une ligne en mode formulaire en dessous du tableau puis, cliquer sur un bouton "valider" pour enregistrer les données du formulaire en base, et/ou supprimer des lignes de ma table via une dernière colonne de mon tableau en html avec des checkbox, pour chaque ligne coché cliquer sur un bouton "supprimer".


    ** Voici mon code pour alimenter ma table, ce code n'est pas intégré à mon tableau final pour le moment vu que je n'ai pas trouver de solution **

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form method="post" action="add.php">
     
    	<input type="text" name="nom" size="10" value="nom" maxlength="10">
    	<input type="text" name="prenom" size="10" value="prenom" maxlength="10">
    	<input type="text" name="ville" size="10" value="ville" maxlength="10">
     
    	<input type="submit" value="Envoyer" name="envoyer">
     
    </form>

    ** add.php **

    Code : 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
    <?php 
     
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
    else      $prenom="";
     
    if(isset($_POST['ville']))      $ville=$_POST['ville'];
    else      $ville="";
     
     
    if(empty($nom) OR empty($prenom) OR empty($ville))
     {
     echo '<font color="red"><b><center>Attention, vous devez remplir tous les champs</center></b></font>';
     }
     
     else 
     
    {
     
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'userbase', 'pwdbase');
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
    $req->execute(array(
    $req = $bdd->prepare('INSERT INTO tbl_base(nom, prenom, ville) VALUES (:nom, :prenom, :ville)'); 
    	'nom' => $nom,
    	'prenom' => $prenom,
    	'ville' => $ville
    	));			 
     
        echo 'Vos infos on été ajoutées.';
     
    }
    ?>

    ** Tableau pour visualiser les données **

    Code : 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
    <?php
     
    try
     
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'userbase', 'pwdbase');
    }
     
    catch(Exception $e)
     
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
    	die('Erreur : '.$e->getMessage());
    }
     
    // Si tout va bien, on peut continuer
     
    // On récupère tout le contenu de la table
    $reponse = $bdd->query('SELECT * FROM tbl_base');
     
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
     
    {
     
    ?>
     
    	<div class="row">
    		<div>
    			<div class="date"><?php echo $donnees['nom'] ; ?></div>
    			<div class="cell"><?php echo $donnees['prenom'] ; ?></div>
    			<div class="cell"><?php echo $donnees['ville'] ?></div>
     
     
    			<div class="cell"><input type="checkbox" name="case[]" value="'.$dat['id'].'" /></div>
     
    		</div>
    	</div>
     
    <?php
     
    }
     
    $donne->closeCursor(); // Termine le traitement de la requête
     
    ?>


    J'ai essayé d'utiliser au mieux PDO. La colonne avec les Checkbox ne sert à rien pour le moment à partir en visuel.

    Si vous avez du code tout prêt, des exemples, solutions etc. je suis preneur afin de fusionner mes différentes parties en une seule optimisée et fonctionnelle.

    Merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'est ce qui ne te vas pas avec ton code actuel ?

    Au passage quand même pour add.php, la premiere partie ne sert à rien

    Code : 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 
    if(empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['nom']))  {
       echo '<font color="red"><b><center>Attention, vous devez remplir tous les champs</center></b></font>';
     }
     else {
     try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=base;charset=utf8', 'userbase', 'pwdbase');
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
     
    $req = $bdd->prepare('INSERT INTO tbl_base(nom, prenom, ville) VALUES (:nom, :prenom, :ville)'); 
    $req->execute(array(':nom' => $_POST['nom'],
    	':prenom' => $_POST['prenom']
    	':ville' => $_POST['ville']
    	));			 
     
        echo 'Vos infos on été ajoutées.';
     
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 87
    Par défaut
    Merci pour ta réponse, je vais enlever la partie qui ne sert pas.

    Mon code fonctionne pour ce scénario :

    - 1 page pour ajouter mes nouvelles données
    - 1 page pour visualiser mes données dans un tableau
    - La dernière colonne de mon tableau avec les checkbox pour supprimer des lignes n'est pas codée


    Mon but :

    - Avoir une seule page avec mon tableau et pouvoir supprimer et ajouter mes données.

    - Pour supprimer des lignes, utiliser la dernière colonne avec les checkbox.

    - Pour ajouter des lignes, mettre en place un petit bouton "+" en bas de mon tableau qui fera apparaitre une ligne vierge à compléter et à valider.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Et quel est ton problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 87
    Par défaut
    Re,

    Mon problème est que je n'ai pas assez de connaissance pour arriver à ce résultat :

    http://files.the-asw.com/web/dtable/ex3.html

    C'est pratiquement ce que je recherche, sauf que je veux que mon tableau récupère les données actuelles dans la base, et que via la dernière ligne je puisse rajouter des données à ma base.

    Je sais pas si c'est clair ce que j'essai de vous dire, mais je fais au mieux

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    • tu sais afficher des données dans un tableau via "SELECT...."
    • insérer le formulaire d'ajout dans le bas du tableau ne pose pas de souci particulier
    • récupérer les données et les traiter pour les insérer via "INSERT..." ou les modifier via "UPDATE...", à priori tu sais faire aussi
    • JavaScript, tu sembles savoir l'utiliser


    Donc, même question : "quel est ton problème ?"

    Par contre, il ne faut pas oublier de mettre les balises <form...> autour du tableau !

    Et il te manque peut-être des connaissances en AJAX pour le traitement SANS rechargement de page ?

    [Edit] As-tu lu cet article ?
    Dernière modification par Invité ; 16/03/2015 à 00h47.

Discussions similaires

  1. Php - MySql page formulaire bug requet
    Par Skin-Party dans le forum Requêtes
    Réponses: 5
    Dernier message: 13/11/2013, 09h13
  2. [MySQL] Tableau interactif PHP-MySQL et formulaire PHP
    Par clementdevelop dans le forum PHP & Base de données
    Réponses: 44
    Dernier message: 07/05/2013, 14h10
  3. PHP + MySQL + Tableau + Formulaire
    Par __sPiKe__ dans le forum Langage
    Réponses: 10
    Dernier message: 27/06/2009, 09h39
  4. [SGBD] [PHP/MySQL Query]Quelle est la taille du tableau retourné?
    Par Jean_Benoit dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 07/10/2005, 19h10

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