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

Langage PHP Discussion :

Afficher un bouton modifier a chaque ligne d'un tableau qui récupère des données dans une BDD


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut Afficher un bouton modifier a chaque ligne d'un tableau qui récupère des données dans une BDD
    Bonjour a tous, j'essaye de réaliser un annuaire simple et comme dans le titre j'essaye d'ajouter a chaque ligne de mon tableau un bouton modifier pour que l'utilisateur puisse modifier les données qu'il a entré préalablement, or j'ai essayé d'ajouter une colonne a mon tableau en y mettant un bouton avec input mais j'ai une erreur. Pourriez vous m'aider? Merci d'avance.

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <html>
    <head>
    <title>Annuaire</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <?php
     
    // Connexion a la base de données
    $connect=mysqli_connect("localhost","root","") or die("Erreur de connexion a la BDD");
    mysqli_select_db($connect, "annuaire") or die("Erreur de connexion a la table");
    ?>
     
     
    <?php
     
    if (isset($_POST['save']))
    {
    	$nom=$_POST['Nom'];
    	$prenom=$_POST['Prenom'];
    	$telephone=$_POST['Telephone'];
    	$mail=$_POST['Mail'];
    	$sql1="INSERT INTO repertoire VALUES ('$nom', '$prenom', '$telephone', '$mail')";
    	$resultat1=mysqli_query($connect,$sql1);
    	if ($resultat1)
    	{
    		echo " requête ok ";
    	}
    	else
    	{
    		echo " requête défaillante ";
    	}
    }
    ?>
     
    <?php
    // création des requetes
    $sql="SELECT*FROM repertoire";
    echo "<html><body><div align=\"center\">" ;
    echo "<h1>Liste des personnes</h1><br><br><br>" ;
     
    // envoie de la requête et retour
    $resultat=mysqli_query($connect,$sql);
    if($resultat)
    {
    	echo "<table align='center' border=1 cellspacing=3 cellpadding=0>";
    	while($table_ligne=mysqli_fetch_array($resultat))
    		{
    		echo "<tr>";
    		echo "<td>",$table_ligne['Nom'],"</td>";
    		echo "<td>",$table_ligne['Prenom'],"</td>";
    		echo "<td>",$table_ligne['Telephone'],"</td>";
    		echo "<td>",$table_ligne['Mail'],"</td>";
    		echo "</tr>";
    		}
    		echo "</table>";
    }
    mysqli_close($connect);
    ?>	
    <div class="bouton">
    <input type="button" value="Modifier" href="lien"/>
    </div>
     
    <form action="" method="post">
    <br><br>
    Ajouter une nouvelle personne :
    <br><br>
    Nom :
    <input type="texte" name="Nom">
    <br><br>
    Pr&eacutenom :
    <input type="texte" name="Prenom">
    <br><br>
    T&eacutel&eacutephone :
    <input type="texte" name="Telephone">
    <br><br>
    Mail :
    <input type="texte" name="Mail">
    <br><br>
    <input type="submit" name="save" value="Ajouter">
    </form>
    </body>
    </html>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour, et bienvenu sur DVP,

    Si tu ne nous montres pas le message d'erreur complet, on ne va pas le deviner...

  3. #3
    Membre actif Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Par défaut
    ajoute l'echo 5 pour avoir un bouton modifier a chaque ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     echo "<tr>";
    		echo "<td>",$table_ligne['Nom'],"</td>";
    		echo "<td>",$table_ligne['Prenom'],"</td>";
    		echo "<td>",$table_ligne['Telephone'],"</td>";
    		echo "<td>",'<input type="button" value="Modifier" href="lien"/>',"</td>";
    		echo "</tr>";


    La rigueur vient toujours à bout de l'obstacle.
    Les détails font la perfection, et la perfection n'est pas un détail.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Jordan : dans le code que tu nous montres il ya un seul bouton Modifier. ça peut marcher si tu ajoutes quelque chose pour sélectionner la ligne à modifier (par exemple un input radio).

    Dans tous les cas, il faut deux choses :
    un moyen d'identifier la ligne. L'identifiant unique en base fera très bien l'affaire.
    un moyen de modifier : une autre page avec un formulaire avec laquelle on redirige, un formulaire inline, un formulaire dans la même page qu'on remplit avec les données de la ligne sélectionnée...


    @armand : je pense que le problème de Jordan, ce n'est pas d'afficher un bouton, mais d'afficher un bouton qui fait quelque chose. Or là ton bouton ne fait rien Et la dernière fois que j'ai regardé la doc, les input (même de type button) ne supportaient pas l'attribut href.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Merci pour vos réponses! En fait j'ai oublié d'enlever le bouton que j'ai mis après le mysqli_close, parce que oui il fait rien c'était un test. J'ai essayé de mettre un echo <input type="button"> dans la boucle while mais le navigateur me met cette erreur
    Parse error: syntax error, unexpected 'button' (T_STRING), expecting ',' or ';'
    Edit: J'ai ajouté l'echo avec le input et ça a marché ! merci a vous, en fait c'était bien un problème de syntaxe comme me l'avais signalé l'erreur mais je n'arrivais pas a la localiser, maintenant, il ne me reste plus qu'a mettre en fonctionnalité les boutons pour qu'il puisse modifier les données, je vais essayer seul, je reviendrais vers vous en cas de soucis, merci a vous !

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Je reviens vers vous pour un nouveau petit problème, j'ai réussi a récupérer l'id de chaque ligne et j'ai réussi également a pouvoir supprimer n'importe quelle ligne. Or j'ai voulu faire la même chose pour modifier les champs de la ligne mais j'ai 4 erreurs, pouvez vous m'aidez ?

    Voici mon code:

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <html>
    <head>
    <title>Annuaire</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <?php
     
    // Connexion a la base de données
    $connect=mysqli_connect("localhost","root","") or die("Erreur de connexion a la BDD");
    mysqli_select_db($connect, "annuaire") or die("Erreur de connexion a la table");
    ?>
     
    <?php
    if (isset($_GET['o']))
    {
    	if($_GET['o']=='d')
    	{
    		$id=$_GET['id'];
    		$sql3="DELETE FROM repertoire WHERE id=$id";
    		$resultat2=mysqli_query($connect,$sql3);
     
    	}
     
    }
    ?>
    <?php
    if (isset($_GET['o']))
    {
    	if($_GET['o']=='u')
    	{
    		$nom=$_GET['Nom'];
    		$prenom=$_GET['Prenom'];
    		$telephone=$_GET['Telephone'];
    		$mail=$_GET['Mail'];
    		$id=$_GET['id'];
    		$sql4="Update repertoire set Nom = '$nom', Prenom = '$prenom', Mail = '$mail', Telephone = '$telephone' WHERE id=$id";
    		$resultat3=mysqli_query($connect,$sql4);
     
    	}
     
    }
    ?>
     
    <?php
    $erreur='';
    if (isset($_POST['save']))
    {
     
    	$nom=$_POST['Nom'];
    	$prenom=$_POST['Prenom'];
    	$telephone=$_POST['Telephone'];
    	$mail=$_POST['Mail'];
    	$sql1="INSERT INTO repertoire(Nom, Prenom, Telephone, Mail) VALUES ('$nom', '$prenom', '$telephone', '$mail')";
    	$resultat1=mysqli_query($connect,$sql1);
    	if ($resultat1)
    	{
    		$erreur='<hr><p>Vous avez ajout&eacute une personne</p>';
    	}
    	else
    	{
    		$erreur='<hr><p>Erreur pour ajouter</p>';
    	}
    }
    ?>
     
    <?php
    // création des requetes
    $sql="SELECT *FROM repertoire";
    echo "<div align=\"center\">" ;
    echo "<br><br><h1>Liste des personnes</h1><br><br><br>" ;
     
    // envoie de la requête et retour
    $resultat=mysqli_query($connect,$sql);
    if($resultat)
    {
    	echo "<table align='center' border=1 cellspacing=3 cellpadding=0>";
    	while($table_ligne=mysqli_fetch_array($resultat))
    		{
    		$id=$table_ligne['Id'];
    		echo "<tr>";
    		echo "<td>",$table_ligne['Nom'],"</td>";
    		echo "<td>",$table_ligne['Prenom'],"</td>";
    		echo "<td>",$table_ligne['Telephone'],"</td>";
    		echo "<td>",$table_ligne['Mail'],"</td>";
    		echo "<td>","<a href='?id=$id&o=u'>Modifier</a>","</td>";
    		echo "<td>","<a href='?id=$id&o=d'>Supprimer</a>","</td>";
    		echo "</tr>";
    		}
    		echo "</table>";
    }
    mysqli_close($connect);
    ?>
     
    <form action="" method="post">
    <br><br>
    <input type="hidden" name="id">
    Ajouter une nouvelle personne :
    <br><br>
    Nom :
    <input type="texte" name="Nom">
    <br><br>
    Pr&eacutenom :
    <input type="texte" name="Prenom">
    <br><br>
    T&eacutel&eacutephone :
    <input type="texte" name="Telephone">
    <br><br>
    Mail :
    <input type="texte" name="Mail">
    <br><br>
    <input type="submit" name="save" value="Ajouter">
    <br><br>
    <?php
    echo isset($erreur)?$erreur:'';
    ?>
    </form>
    </body>
    </html>
    Nom : Capture1.PNG
Affichages : 5364
Taille : 139,3 Ko
    Nom : Capture3.PNG
Affichages : 5458
Taille : 102,1 Ko

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    A priori, ton erreur se situe dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if($_GET['o']=='u')
    {
    	$nom=$_GET['Nom'];
    	$prenom=$_GET['Prenom'];
    	$telephone=$_GET['Telephone'];
    	$mail=$_GET['Mail'];
    	$id=$_GET['id'];
    	$sql4="Update repertoire set Nom = '$nom', Prenom = '$prenom', Mail = '$mail', Telephone = '$telephone' WHERE id=$id";
    	$resultat3=mysqli_query($connect,$sql4);
     
    }
    Les données dans $_GET sont les données passées dans l'url. Je doute que tu ais renseigné le nom et le reste dans ton url. D'où sont censées venir les nouvelles informations de ton utilisateur ? Tu as un formulaire de modification quelque part ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Merci de ta réponse, je n'ai pas crée d'autre formulaire à vrai dire, je vais essayé ça merci.

Discussions similaires

  1. modifier des données dans une requête multi table
    Par Bluman dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/02/2008, 11h00
  2. Afficher des données dans une textbox
    Par divad dans le forum AWT/Swing
    Réponses: 21
    Dernier message: 27/05/2007, 21h22
  3. Réponses: 26
    Dernier message: 01/07/2006, 14h14
  4. Modifier des données dans une popup
    Par Sandara dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/06/2006, 14h00
  5. [MySQL] Modifier des données dans une base de donnée
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/01/2006, 10h56

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