Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1194 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Bouton supprimer / Débutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bouton supprimer / Débutant

n°2059390
dupec
Posté le 24-02-2011 à 14:45:52  profilanswer
 

Bonjour à tous,
 
Je réalise actuellement une base de données MySQL bien que ce en soit absolument pas ma spécialité (vous avez peut être déjà vu mes posts sur ce forum...).
 
J'ai réussi à créer la fonction "ajouter" (quand je rempli des champs et je clique sur l'input ajouter, la BdD enregistre ces champs et me les affiche comme ci dessous:
 
CHIRAC jacques
----------                supprimer
halliday johnny
----------               supprimer
 
Voici une partie du code (boucle while):
 
<table>
<TR><th>----------</th><th>
<?
$req= mysql_query("SELECT * FROM contact" );
while($data=mysql_fetch_object($req))
{
echo '<tr><td>',$data->Nom,'</td><td>',$data->Prenom,'</td></tr>';
?>
<TR><th>----------</th><th>
 
<INPUT TYPE=SUBMIT VALUE='supprimer' NAME='supprimer' >
 
<?php
 
}
?>
 
J'ai ajouté un input supprimer dans la boucle (à l'endroit ou il y a marqué supprimer en gras ci dessus). Je souhaiterais maintenant pouvoir supprimer la ligne de ma BdD quand je clique sur ce bouton.
 
Dois-je faire une autre boucle dans la boucle avec une fonction MySQL DELETE? Est il possible de faire ce que veux? Quelqu'un a t-il une idée?
 
Merci
 

mood
Publicité
Posté le 24-02-2011 à 14:45:52  profilanswer
 

n°2059531
azel
Posté le 25-02-2011 à 09:27:00  profilanswer
 

Il va te falloir un peu plus d'information pour realiser ce genre de chose.
 
1. Je te conseille de rajouter un ID unique qui te permettra d'identifier un contact, et sera donc la cle primaire dans ta table.
 
2. Tu crees un second script php (ex: delete.php), que tu vas appeler avec l'ID d'un contact (ex: delete.php?id=1) et qui s'occupera de la suppression de la ligne dans ta base.
 
Tu devrais avoir un truc qui ressemble a ca:
 
contacts.php

Code :
  1. [...]
  2. <table>
  3. <?php
  4.     $req= mysql_query("SELECT * FROM contact" );
  5.     while($data=mysql_fetch_object($req))
  6.     { ?>
  7.          <tr>
  8.              <td><?php echo $data->Nom; ?></td>
  9.              <td><?php echo $data->Prenom; ?></td>
  10.              //Tu rajoutes un lien vers le script delete.php avec en parametre l'ID du contact
  11.              <td><a href="delete.php?id=<?php echo $data->Id; ?>">Suppprimer</a></td>
  12.          </tr>
  13. <?php }?>
  14. [...]


 
 
delete.php

Code :
  1. <?php
  2.    
  3.      //Tu recuperes l'id du contact
  4.      $id = $_GET["id"];
  5.      //Requete SQL pour supprimer le contact dans la base
  6.      mysql_query("DELETE FROM contact WHERE id = ".$id );
  7.      //Et la tu rediriges vers ta page contacts.php pour rafraichir la liste
  8. ?>


 
 
 
 
 

n°2059553
dupec
Posté le 25-02-2011 à 10:22:12  profilanswer
 

Merci Axel! J'avais bossé la dessus hier soir et je me dirigeais vers cette solution.
J'ai mis un ECHO après la requète qui me dit que c'est bon. Par contre je ne sais pas comment faire pour me rediriger vers la page contact et rafraichir.  
 
J'ai effectué quelques recherches et il semblerait que je puisse faire çà avec un header ou un POST. Quel est la meilleur méthode? Comment faire?

n°2059570
azel
Posté le 25-02-2011 à 10:53:49  profilanswer
 

Oui utilise la fonction header, ca marche tres bien. Tiens regarde du cote de la doc. pour plus d'info: http://www.php.net/manual/fr/function.header.php

n°2059991
dupec
Posté le 28-02-2011 à 11:00:09  profilanswer
 

Bonjour à tous,
 
J'ai toujours des problèmes avec ma fonction "supprimer"
 
Je vous mets le code:
 
contact.php
 
<php>
 
<HTML><HEAD>
<TITLE>contact.php</TITLE>
</HEAD>
<BODY>
 
<FORM>
 
Nom:         <INPUT TYPE=TEXT NAME='Nom'><BR>
Prenom:      <INPUT TYPE=TEXT NAME='Prenom'><BR>
Fonction:    <INPUT TYPE=TEXT NAME='Fonction'><BR>
Societe:     <INPUT TYPE=TEXT NAME='Societe'><BR>
Téléphone:   <INPUT TYPE=TEXT NAME='Telephone'><BR>
Email:       <INPUT TYPE=TEXT NAME='Email'><BR>
Adresse:     <INPUT TYPE=TEXT NAME='Adresse'><BR>
Commentaire: <INPUT TYPE=TEXT NAME='Commentaire'><BR>
 
<INPUT TYPE=SUBMIT VALUE='ajouter' NAME='ajouter' >
</FORM>
 
<?php
 
$connexion = mysql_connect("localhost", "dbcolas", "sn2011" );
 
if (!$connexion)
{
echo "Connexion impossible \n";
exit;
}
 
if (!mysql_select_db("suivi" ))
{
echo "Connexion base impossible\n";
exit;
}  
 
$res=mysql_query("SELECT * FROM contact",$connexion) or die(mysql_error());
//echo $res;
 
$Nom = $_GET['Nom'];  
$Prenom = $_GET['Prenom'];
$Fonction = $_GET['Fonction'];
$Societe = $_GET['Societe'];
$Telephone = $_GET['Telephone'];
$Email = $_GET['Email'];
$Adresse = $_GET['Adresse'];
$Commentaire = $_GET['Commentaire'];
 
//FONCTION AJOUTER
 
if( isset( $_GET['ajouter'] ) )  
{
echo "Entrez vos champs";
$requete = mysql_query("INSERT INTO contact (Id, Nom, Prenom, Fonction, Societe, Telephone, Email, Adresse,
Commentaires) VALUES ('$Id', '$Nom', '$Prenom', '$Fonction', '$Societe', '$Telephone', '$Email', '$Adresse', '$Commentaire')" );    
}
 
?>
 
 
 
<table>
<TR><th>--------------------</th><th>
<?
 
//AFFICHAGE DES RESULTATS
 
$req= mysql_query("SELECT * FROM contact" );
while($data=mysql_fetch_object($req))
{
echo '<tr><td>',$data->Id, '</td><td>', $data->Nom,'</td><td>',$data->Prenom,'</td></tr>';
?>
<TR><th>--------------------</th><th>
 
<?php
 
//FONCTION SUPPRESSION
 
echo "<a href=\"suppression.php?Id=" . $data['Id'] . "><INPUT TYPE=SUBMIT VALUE='supprimer' NAME='supprimer' ></a>";
 
 
//FONCTION MODIFIER
 
//echo "<a href=\"modification.php?Id=" . $data['Id'] . "><INPUT TYPE=SUBMIT VALUE='modifier' NAME='modifier' ></a>";
 
 
}
 
?>
 
</BODY></HTML>
 
</php>
 
suppression.php
 
<php>
 
<?php
 
$connexion = mysql_connect("localhost", "dbcolas", "sn2011" );
 
if (!$connexion)
{
echo "Connexion impossible \n";
exit;
}
 
if (!mysql_select_db("suivi" ))
{
echo "Connexion base impossible\n";
exit;
}  
 
$Id = $_GET['Id'];
$req=mysql_query("DELETE FROM contact WHERE Id='$Id'" )or die(mysql_error());
//echo $Id;
 
 
header("Location:contact.php" );  
exit;
 
</php>
 
Après enquête, il s'avère qu'il y a un décalage d'une unité entre l'Id affiché dans mon tableau et l'Id en écho de ma requéte supprimer. Donc çà ne marche pas (sans me renvoyer d'erreur) puisque le programme doit supprimer un truc qui n''existe pas (ou qui est vide).
 
Quelqu'un a t-il une idée de ce que je dois pour régler ce problème?

n°2060557
azel
Posté le 02-03-2011 à 03:47:00  profilanswer
 

Un conseil pour commencer: organise un peu mieux ton code
Essaye d'identifier chaque action de maniere a separer ton code proprement.
 
Par exemple, tu dupliques 2 fois le code pour la connexion a ta base de donnees. Ecris un script, mysql.php, qui s'occupe UNIQUEMENT de cette tache et  te retourne la variable $connexion. Tu inclus ce script en haut de ton fichier contact.php/suppression.php et tu utilises $connexion pour faire tes requetes SELECT, INSERT, DELETE.
De la meme maniere tu devrais separer le code relatif a l'ajout et a la modification d'un contact. Le plus simple (et clair), c'est peut etre d'avoir UNE fonction (~script) pour UNE action.
 
Concernant ton probleme, tu utilises la fonction mysql_fetch_object qui retourne un objet et non un tableau (cf. mysql_fetch_array si tu veux un tableau). Donc d'un cote tu accedes au contenu de $data comme si c'etait un objet ($data->Id) OK, et d'un autre tu accedes a son contenu comme si c'etait un tableau ($data['Id']) MARCHE PAS!. Autre conseil, etre consistant dans son code ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Bouton supprimer / Débutant

 

Sujets relatifs
Supprimer des lignesrechercher et supprimer
"re-executer " un script php via un bouton htmlHierarchiser submit et onclick (pour un même bouton)
[RegEx] Supprimer les espaces multiplesSupprimer ce qu’il y a entre guillemets ?
bouton play visible à la fin d'une chanson. [ A SUPPRIMER : Solution trouvée]
A supprimer 
Plus de sujets relatifs à : Bouton supprimer / Débutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR