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 :

Supprimer une ligne afficher dans une base de donnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Supprimer une ligne afficher dans une base de donnée
    Bonjour,
    J'espere que je suis sur le bon forum pour posé ma question,

    Voila j'exécute une requête dans une base de donnée (Mysql) qui me renvoi une 40 de réponse, que j'affiche dans un tableau voir code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Tant que ...
    <TR>
    <TD>".$data['prenom']."</TD>
    <TD".$data['nom']."</TD>
    <TD><IMG src='images/supp.png'></TD>
    </TR>
    Fin Tant que
    J'obtiens a l'écran sur chaque ligne le prénom le nom et une image qui signifie supprimer. je souhaiterai quand cliquant sur l'image, le nom et prénom de la ligne dans ma table soit éffacer.

    Je ne sais pas comment le faire, pourriez vous m'aider ?
    ce n'est pas la requête qui me pose problème mais la manière dont elle va être exécuter.

    Merci
    Julien

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    dans le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <tr>
    <td><?php echo $data['prenom']; ?></td>
    <td><?php echo $data['nom']; ?></td>
    <td>
    <form method="post" action="mapage.php">
    <input type="hidden" name="nom" value=".$data['nom']." />
    <input type="image" src="images/supp.png" alt="supprimer" name="del_img" id="del_img" />
    </form>
    </td>
    dans le bloc php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(isset($_POST['del_img'])) {
       $nom = $_POST['nom'];
       if( !empty($nom) ) {
          $sql = "DELETE FROM `matable` WHERE `nom` LIKE '".$nom."'";
          $res = mysql_query($sql);
          if(!$res) die ("Impossible de supprimer");
       }
    }
    je pense que c'est ce que tu voulais...
    ;-)

    [EDIT]
    l'idéal serait d'utiliser un champs id dans la base mysql, car si le nom y est 2 fois, tu risques de supprimer 2 utilisateurs.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    j'ai le même probleme que julienchpt.

    Merci pour la réponse ska_root mais quand tu dis le code dans le formulaire c'est ok, mais le code dans le bloc c'est quoi?
    Désolé ma question est surement débile!!

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    effectivement je ne comprend pas ta question...

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    Désolé!

    où dois-je mettre le bloc php?
    est ce qu'il faut que je crée une fonction php ou je le met simplement entre des balises php.

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    non pas de fonction dans ce cas précis, tu mets juste le code entre balises php

    mais tu peux bien sur créer une fonction..
    imaginons que tu aies un champs id dans la base de données tu ferais :
    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
     
    <?php
    function supprime($id_user) {
       $toReturn = '';
       // connection a la base
       // puis requete :
       $sql = "DELETE FROM `matable` WHERE id = ".$id_user;
       $res = mysql_query($sql);
       if(!$res) $toReturn = "Impossible de supprimer l'utilisateur n° $id <br />";
       else $toReturn = "Utilisateur n° $id supprimé !<br />";
       return $toReturn;
    }
     
    if (isset($_POST['del_form'])) echo supprime($_POST['id']);
    ?>
    <html><body>
    <!-- exemple d'un formulaire, il faut bien sur imaginer qu'il est rempli a la suite d'un requete dans la base -->
    <table><tr>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="id" value="1" />
    <td><input type="text" name="nom" value="lenom" /></td>
    <td><input type="text" name="prenom" value="leprenom" /></td>
    <td><input type="submit" name="del_form" value="Supprimer" /></td>
    </tr></table>
    </form>
    </body></html>
    voila j'espere que tu comprends... ;-)

  7. #7
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    moi aussi interessé par ce sujet, j'ai testé ce qui est indiqué ici mais sans succès. voici mon code:

    [liste.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
    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
    <HTML>
    <HEAD>
    	<title>Liste des personnes</title>
    </HEAD>
    <BODY>
    	<table width="682">
    		<tr bgcolor="#CCCCCC"> 
    		<td width="50"><B>ID</B></td>
    		<td width="180"><B>Nom</B></td>
    		<td width="180"><B>Prénom</B></td>
    		<td width="120"><B>Service</B></td>
    		<td width="120"><B>Bureau</B></td>
    		<td width="16"><B> </B></td>
    		<td width="16"><B> </B></td>
      </tr>
     
     
    	<?
    		include("connexion.inc.php");
     
    		$sql= "SELECT * FROM Personnes";
    		$resultat = mysql_query($sql);
    		while ($data = mysql_fetch_assoc($resultat)) 
    		{
    			echo "<TR>";	//la balise <TR> marque le debut d'une nouvelle ligne du tableau d'affichage
    				echo "<TD>"; //la balise <TD> marque le debut d'une nouvelle case dans la ligne en cours 
    				echo $data['ID_Personne'];
    				echo "</TD>";
     
    				echo "<TD>";				
    				echo $data['Nom']; 
    				echo "</TD>";
     
    				echo "<TD>";
    				echo $data['Prénom']; 
    				echo "</TD>";
     
    				echo "<TD>";
    				echo $data['ID_Service']; 
    				echo "</TD>";
     
    				echo "<TD>";
    				echo $data['Bureau'];
    				echo "</TD>";
     
     
    			 ?>
     
    			 <!-- les cases suivantes contiennent une image clicable -->
    				<TD> <!-- bouton modifier -->
    				<form method="post" action="maj.php">
    				<input type="hidden" name="ID_Personne" value=".$data['ID_Personne']." />
    				<input type="image" src="images/edit.png" alt="modifier" name="modif_img" id="modif_img" />
    				</form>
    				</TD>
     
    				<TD> <!-- bouton supprimer -->
    				<form method="post" action="maj.php">
    				<input type="hidden" name="ID_Personne" value=".$data['ID_Personne']." />
    				<input type="image" src="images/suppr.png" alt="supprimer" name="del_img" id="del_img" />
    				</form>
    				</TD>
    			</TR>
     
    		<?			
    		}
     
    	?>
    </BODY>
    </HTML>
    [maj.php]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body>
      Votre nom est
      <? echo $ID_Personne; ?>
    </body>
    je précise que j'ai bien configurer register_globals = on dans le fichier php.ini.

    voici ce qu'il m'affiche lorsque je clique sur une des images d'action:
    Votre nom est .$data['ID_Personne']

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="ID_Personne" value="<?php echo $data['ID_Personne']; ?>" />

  9. #9
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    essaie ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="ID_Personne" value="<?=$data['ID_Personne']?>" />
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par yiannis
    essaie ca:....
    copieur

  11. #11
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    desole Mr N pas fait expres
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  12. #12
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    MERCIiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !!!!!

    ca marche super !

  13. #13
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    rectification: ca marche presque !
    j'arrive bien a récupérer la variable dans le second script de test mais dès que je veux aller plus loin, je bloque:

    [new maj.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
     
    <body>
    	<? 
    		if(isset($_POST['del_img'])) 
    		{
    			if( !empty($ID_Personne) ) 
    			{
    				$sql = "DELETE FROM `matable` WHERE `nom` LIKE '".$ID_Personne."'";
    				$res = mysql_query($sql);
    				if(!$res) die ("Impossible de supprimer");
    			}
    		} 
     
    		if(isset($_POST['modif_img'])) 
    		{
    			if( !empty($ID_Personne) ) 
    			{
    				echo "la personne a modifier est n° " .$ID_Personne;
    			}
    		} 
     
    	?>
    </body>
    j'appelle ce script avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <TD> <!-- bouton modifier -->
    <form method="post" action="maj.php">
    <input type="hidden" name="ID_Personne" value="<?=$data['ID_Personne']?>" />
    <input type="image" src="images/edit.png" alt="modifier" name="modif_img" id="modif_img" />
    </form>
    </TD>
     
    <TD> <!-- bouton supprimer -->
    <form method="post" action="maj.php">
    <input type="hidden" name="ID_Personne" value="<?=$data['ID_Personne']?>" />
    <input type="image" src="images/suppr.png" alt="supprimer" name="del_img" id="del_img" />
    </form>
    </TD>

  14. #14
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    essaie avec le $_POST
    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
    <body>
       <?
          if(isset($_POST['del_img']))
          {
             if( !empty($_POST['ID_Personne']) )
             {
                $sql = "DELETE FROM `matable` WHERE `nom` LIKE '".$_POST['ID_Personne']."'";
                $res = mysql_query($sql);
                if(!$res) die ("Impossible de supprimer");
             }
          }
     
          if(isset($_POST['modif_img']))
          {
             if( !empty($_POST['ID_Personne']) )
             {
                echo "la personne a modifier est n° " .$_POST['ID_Personne'];
             }
          }
     
       ?>
    </body>
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  15. #15
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2004
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Février 2004
    Messages : 345
    Points : 420
    Points
    420
    Par défaut
    le problème c'est que je n'entre pas dans le j'ai mis des "echo" de debogage:

    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
     
    <body>
    	<? 
    		echo "-DEBUG 0-";
    		if(isset($_POST['del_img'])) 
    		{
    			echo "-DEBUG 1.1-";
    			if( !empty($ID_Personne) ) 
    			{
    				echo "-DEBUG 1.2-";
    				$sql = "DELETE FROM `matable` WHERE `nom` LIKE '".$ID_Personne."'";
    				$res = mysql_query($sql);
    				if(!$res) die ("Impossible de supprimer");
    			}
    		} 
     
    		if(isset($_POST['modif_img'])) 
    		{
    			echo "-DEBUG 2.1-";
    			if( !empty($ID_Personne) ) 
    			{
    				echo "-DEBUG 2.2-";
    				echo "la personne a modifier est n° " .$ID_Personne;
    			}
    		} 
     
    	?>
    </body>
    et j'ai juste "-DEBUG 0-" qui s'affiche

  16. #16
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    fais un var_dump($_POST); pour savoir ce qu'il y a dedans

  17. #17
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    es tu sur d'arriver sur ta page new_maj.php? car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="image" src="images/suppr.png" alt="supprimer" name="del_img" id="del_img" />
    n'est qu'un image. Il faut que tu submite ton form pour passer les variables a ton autre page
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  18. #18
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    normal, ds ton formulaire tu ne met pas de valeur ds ton del_img

    essaie plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['nom']))

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par yiannis
    n'est qu'un image. Il faut que tu submite ton form pour passer les variables a ton autre page
    les champs type="image" se comportent comme les boutons submit, quand tu cliques dessus ca submit le formulaire avec deux parametres supplémentaires qui sont les coordonnées x,y du clic sur l'image

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    voila une autre méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if($_GET['del']==1)
      {
        $id=$_GET['id'];
        $requete="delete from demande where no_demande=$id";
        mysql_query("requete", $conn);
      }
     
    //$id=la valeur de l'id de la ligne a effacé
    <a href='suppr.php?del=1&id=$id' target='_parent'>Supprimer</a>
    Ainsi tu recharges ta page et les suppressions sont prises en compte
    Nulla dies sin linea

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2013, 21h06
  2. Réponses: 4
    Dernier message: 23/05/2011, 17h28
  3. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  4. Réponses: 1
    Dernier message: 21/06/2010, 23h29
  5. Réponses: 6
    Dernier message: 13/11/2009, 16h06

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