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 :

Bouton supprimer une ligne d'une base de donnée


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Bouton supprimer une ligne d'une base de donnée
    Bonjour à tous,

    je ne sais pas si je suis dans la bonne rubrique mais j'espère.
    Je suis en train de faire un site en php avec une base de données. Pour le moment, j'essaye de configurer la partie administrateur.
    Lorsque j'affiche ma page, j'ai un formulaire permettant d'ajouter des données à la base de données et sous ce formulaire j'ai l'affichage du contenu de ma bd. Le bouton ajour fonctionne, chaque fois que je remplis le formulaire et que je clique sur ajouter, une ligne est ajoutée en dessous des autres données de la bd.

    Ce que j'aimerais faire et que je n'arrive pas, c'est mettre un bouton à côté de chaque ligne pour supprimer cette ligne dans la bd.

    Ci dessous le code qui permet l'affichage des données ainsi que du bouton supprimer :

    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
    <TABLE BORDER="1" CELLPADDING="4" CELLSPACING="0" width="100%">
    			<TR ALIGN=\"center\">
    				<th width="5%">Numéro</th>
    				<TH width="20%">Nom produit</TH>
    				<TH width="40%">Description</TH>
    				<th width="15%">Photo</th>
    				<TH width="10%">Prix</TH>
    				<th width="5%">Sup.</th>
    			</TR>
     
    <?php
        $requete="select * from accessoires";
        $result=mysql_unbuffered_query($requete);
    	while ($article = mysql_fetch_assoc($result))
    				 {
    						printf("<TR><TD>%d</TD><TD>%s</TD><TD>%s</TD><TD><img src='image\alim\%s'></TD><TD>%s</TD><td><input type='submit' name='supprimer' value='supprimer'></td></TR>",$article["libelle"],$article["nom"],$article["description"],$article["photo"],$article["prix"]);
    				 }
     
    ?>
     
    	</table>
    Merci pour votre aide

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Il faudrais déja que tu nous donne la structure complete de ta table.
    Y a t il un identifiant (clé primaire) ?
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Points : 256
    Points
    256
    Par défaut
    Salut

    Je pense que tes données dans la table ont toutes un identifiant unique ?

    donc comme je vois que tu te sers d'un formulaire tu peux le jouer en ajoutant un champ hidden

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="id" value="{$article['id']}"/>
    ensuite l'action de ton formulaire dois etre dirigée vers une page qui récuperera la valeur de l'id envoyée pour supprimer les données

    j'espere que j'ai été à peu pres clair ( ;

    sahid

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui, je vais essayer d'être plus précise

    Ma table est composée des champs

    - libellé qui est ma clé primaire et qui est crée automatiquement en fonction du nombre de produits dans ma base de données (c'est un chiffre)

    - nom -> le nom du produit

    - description

    - photo mais qui reprend juste le nom de la photo, les images ne sont pas incluse dans la base de donnée

    - prix

    je vous mets ci-dessous le code que j'utilise pour ajouter des données comme cela je pense que vous aurez toutes les infos

    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
     
    require("sql_data.php");
     
    	// Reprise des data contenue dans le POST
     
    		@ $add_nom_produit = $_POST['nom_produit'];
    		@ $add_description = $_POST['description'];
    		@ $add_photo = $_POST['photo'];
    		@ $add_prix = $_POST['prix'];
     
    	//Connect serveur php;
    		$db_connect = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
     
    		// ON RECHERCHE L ID MAXIMUM DE LA TABLE
    			$requete=mysql_db_query($sql_bdd,"select max(libelle) from accessoires",$db_connect);
    			$id_max=mysql_result($requete,0,"max(libelle)");
    			$id=$id_max;
     
    		if($add_nom_produit!="" && $add_description!="" && $add_photo!="" && $add_prix!="")
     		 {  			
       		//insertion data table valeur avec \"xxx\" comme symbole
       			$id=$id_max+1;
        		mysql_db_query($sql_bdd,"INSERT INTO accessoires (libelle, nom, description, photo, prix) VALUES ($id, \"$add_nom_produit\", \"$add_description\",\"$add_photo\", \"$add_prix\")",$db_connect);
     		 }     		
    ?>

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse mais est-il possible de l'afficher dans la même page directement ?

    Comme pour l'ajout qui se fait à la fin de données déjà entrée, j'aimerais que quand on clique sur le bouton supprimer, les données se supprime mais en restant dans la même page.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Il te faudrait une colonne id en auto_increment, comme ça tu as juste à faire un lien (avec une image si tu veux) qui contient l'id de la ligne.
    Une fois que tu as récupéré cette id, tu le supprime.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    l'id peut être mon libelle, non ?

    Mon libellé est ma clé primaire, elle est auto-incrémentée

    Mais j'ai dejà essayer mais je n'y arrive pas, je ne vois pas comment je peux récupérer mon libelle et le définir en fonction de la ligne vu qu'il est crée automatiquement ???

    Je sais pas si je suis très clair...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    tu ne peux mettre qu'un submit par page, donc ça:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($article = mysql_fetch_assoc($result))
    	{
            printf("<td><input type='submit' name='supprimer' value='supprimer'></td>",$article["libelle"]);
          }
    ne fonctionne pas.

    Essaie en remplaçant le submit de chaque ligne par un lien dans le genre;
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf('<td><a href="tapage.php?libelle=%d"> supprimer </a></td>',$article["libelle"]);

  9. #9
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Points : 256
    Points
    256
    Par défaut
    re Salut

    tu peux utiliser les checkbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="del['.$article['libel'].']" value="'.$article['libel'].'"/>
    ainsi l'utilisateur coche chaqu'une des données qu'il veut supprimer (si tu veux qu'il en supprime une à la fois, tu peux utiliser les radio)

    si tu veux que ton formulaire rappelle la même page, tu ajoutes un champ hidden à celui-ci de sorte à pouvoir utiliser une condition qui sera validée seulement si l'utilisateur à envoyé le formulaire.

    ensuite tu récupères ton tableau d'id à supprimer et tu traites les informations

    sahid

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. supprimer une ligne et une colonne d'une matrice
    Par nessing dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/08/2007, 15h42
  5. [phpMyAdmin] question sur une ligne à ajouter à ma base de données
    Par jsdar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/04/2007, 11h13

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