Bouton "supprimer"

Eléphanteau du PHP | 42 Messages

15 févr. 2014, 12:43

Voilà, je débute en php, voilà mon problème, j'ai installé un système de dédicasses, et, j'aimerais, que depuis une page "administration.php" j'aie un bouton qui me permette de supprimer les dédicasses que j'ai séléctionné, de ma db. Quelqun pourrait m'aider ?

Mammouth du PHP | 504 Messages

15 févr. 2014, 13:49

Salut,

plusieurs solutions:

1/ Soit tu creer une page avec une requete mysql DELETE FROM ma_base WHERE id='.$mon_id_a_suprimer.'. Ton bouton contient l'url de tapage delete avec comme variable transmise l'id de ton id à suprimer.

2/ La meme chose mais en ajax avec un retour qui te confirme la supression de ton id.

Invité
Invité n'ayant pas de compte PHPfrance

15 févr. 2014, 16:24

D'accord, tu n'as pas un code quelconque à me donner s'il te plait, ça m'aiderait beaucoup, étant donné que je ne sais pas du tout comment coder ce genre de choses ! Pour supprimer un message, par l'id, mon modérateur doit connaitre l'id du message, ça serait pas mal d'avoir un cadre qui affiche l'id de chaque message je pense

Carpediem
Invité n'ayant pas de compte PHPfrance

15 févr. 2014, 16:25

Bonjour,

Voici un exemple identique à adapter suivant ce que vous voulez exactement, la première page lit en bdd et incorpore un bouton supprimer et la seconde permet la suppression de la ligne de table sélectionner.

Voici la première page :

<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=votrebasededonnées', 'root', '');
    $bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}


$reponse = $bdd->query('SELECT * FROM contact');
 

while ($donnees = $reponse->fetch())
{
?>

<table summary="Message reçu via contact.">
    
    <colgroup>
    	<col span="1" width="500"/>
        <col span="1" width="125"/>
        <col span="1" width="125"/>
    </colgroup>
   
    <thead>
        <tr>
            <th abbr="Nav" scope="col">Message Reçu</th>
            <th abbr="Nb" scope="col">Ajouter</th>
            <th abbr="Am" scope="col">Supprimer</th>
        </tr>
    </thead>
    
    

    <tbody>
        <tr>
            <td>Objet du message : <strong><?php echo $donnees['objet']; ?></strong><br />
    Posté le : <strong><?php echo $donnees['jour'] . '/' . $donnees['mois'] . '/' . $donnees['annee']; ?></strong><br />
    Civilité de la personne : <strong><?php echo $donnees['civilite']; ?></strong><br />
    Nom de la personne : <strong><?php echo $donnees['nom']; ?></strong><br />
    Prénom de la personne : <strong><?php echo $donnees['prenom']; ?></strong><br />
    E-mail de la personne : <strong><?php echo $donnees['email']; ?></strong><br />
    Message : <strong><?php echo $donnees['message']; ?></strong></td>
            <td><form action="ajouter-updater-email.php" method="post" enctype="multipart/form-data">
                <input type="hidden" name="email_ajouter" value="<?php echo $donnees['email']; ?>">
                <input type="submit" value="Ajouter l'email" name="envoyer">
                </form>
            </td>
            <td><form action="supprimer-message-contact.php" method="POST" enctype="multipart/form-data">
                <input type="hidden" name="email_supprimer" value="<?php echo $donnees['email']; ?>">
                <input type="hidden" name="legende1" id="legende1"/>
                <input type="hidden" name="legende2" value="qk4e5fg6t9yu1" id="legende2"/>
                <input type="submit" value="Supprimer l'email" name="envoyer">
                </form>
                </td>
        </tr>
        </tbody>
</table>

   
<?php
}
 
$reponse->closeCursor(); // Termine le traitement de la requête
?>


Voici la seconde page pour la suppression :

<?php

$legende2=trim(stripslashes($_POST["legende2"]));
// Si le formulaire a été soumis
if (isset($_POST["envoyer"])){

    if ($legende2="qk4e5fg6t9yu1"); { 
	// On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
	$etat = "erreur"; 
	// On récupère les champs du formulaire, et on arrange leur mise en forme
	// trim()  enlève les espaces en début et fin de chaine
	if (isset($_POST["email_supprimer"])) $_POST["email_supprimer"]=trim(strip_tags($_POST["email_supprimer"]));
  
  if (isset($_POST["legende1"])) $_POST["legende1"]=trim(strip_tags($_POST["legende1"]));
	// Après la mise en forme, on vérifie la validité des champs
  // reception email
  if (empty($_POST["email_supprimer"])) { 
		// On met dans erreur le message qui sera affiché
		$erreur="Vous n'avez rentré d'email..."; 
	}
  // reception legende1
  elseif (!empty($_POST["legende1"])) { 
		// On met dans erreur le message qui sera affiché
		$erreur="Erreur dans la transmission du formulaire..."; 
	}
	// On vérifie si l'email est bien de la forme [email protected]
	elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_supprimer"])){ 
		$erreur="Votre adresse e-mail n'est pas valide...Il doit être sous la forme suivante : [email protected]";
	}
	// Si tous les champs sont valides, on change l'état à ok
	else { 
		$etat="ok";
    }
	}
}


if ($etat=="ok"){ 
	// Cas où le formulaire a été soumis mais il y a des erreurs
    echo "<h4>Les messages de cette adresse email ont été supprimés. <br/><br/>
              Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>";
              
  try
{
    $bdd = new PDO('mysql:host=localhost;dbname=votrebasededonnees', 'root', '');
    $bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$req = $bdd->prepare('DELETE FROM contact WHERE email = :email_supprimer');
$req->execute(array(
    'email_supprimer' => $_POST['email_supprimer']));
              }
              
elseif ($etat=="erreur"){ 
		// On affiche le message correspondant à l'erreur
		echo "<h4>$erreur<br/><br/>
    Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>"; 
	}
  
else {
    echo "<h4>Erreur dans la transmission du formulaire.<br/><br/>
    Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>";
}

	?>

J’espère que ça pourra t'aider

Cordialement

Eléphanteau du PHP | 42 Messages

15 févr. 2014, 18:23

Je préfère utiliser le premier code, or, quand je remplis les champs pour se connecter à la DB (j'ai essayé et ré-essayé) voilà ce que ça m'affiche, Erreur : invalid data source name.

Mammouth du PHP | 504 Messages

15 févr. 2014, 18:31

Re,

Voici un tuto complet sur l'ajout, modification de données avec php.

http://forums.mediabox.fr/wiki/tutoriau ... -donne-php

Lis cela et propose un code sur lequel nous baser pour répondre parce c'est plus que vague ton histoire:
Je préfère utiliser le premier code, or, quand je remplis les champs pour se connecter à la DB (j'ai essayé et ré-essayé) voilà ce que ça m'affiche, Erreur : invalid d
De quoi parles tu ? Quel premier code ? qu'as tu mis pour te connecter à ta bdd ?