Recherche et suppression via un formulaire HTML

Répondre
Achernarb
le 30/03/2012 à 16:13
Achernarb
bonjour,
je dispose d'une base de données Mysql nommée Etudiant qui, à son tour a une table nommée Liste. cette table comprend les champs suivants: id_etudiant, nom, faculte, promotion et sexe.Cette table contient déjà 20 enregistrements. je voudrai alors savoir comment je peux arriver à supprimer un ou plusieurs de ces enregistrements grace à un formulaire HTML? Biensur après avoir recherché grace à ce meme formulaire. J'utilise Wampserver et pour me connecter à Mysql, j'utilise PDO. En plus, suis encore débutant. Votre aide svp!!!
moogli
le 31/03/2012 à 23:45
moogli
salut,

il faut utiliser un lien avec un paramètre qui est la clef primaire de la table (id_etudiant ?) par exemple del.php?id=412
dans del.php tu récupère $_GET['id'].

a partir de la c'est une simple requête delete (voir cours).


@+
Il en faut peu pour être heureux !!!!!
jackbocar
le 03/04/2012 à 17:53
jackbocar
Tu testes ces codes, tu les modifies suivant tes besoins, ta base de données, ta table et ses entrées et surtout tu n'oublies pas les codes de sécurités

lire données avant de supprimer
<?php
require ('connexion.php');

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if (isset($_GET['id_etudiant'])) {
$sql=('SELECT id_etudiant, nom FROM ETUDIANTS WHERE id_etudiant="'.$_GET['id_etudiant'].'"');

foreach ($dbh->query($sql) as $row)
{
$_POST['nom'] = $row['nom'];
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>


<form name="formulaire" method="post" action="edit_etudiant.php">
<p>Titre :</p>
<p><input type="text" id="nom" name="nom" size="30" maxlength="30" value="<?php print ''.stripslashes($row["nom"]).''; ?>"></p>
<p><input type="submit" value="Enregistrer"></p>
<p><input type="hidden" name="id_etudiant" value="<?php echo $_GET['id_etudiant']; ?>"></p>
</form>



Code pour edit_etudiant.php
<?php
require ('connexion.php');

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = $dbh->exec('UPDATE ETUDIANTS SET nom="'.$_POST['nom']).'" WHERE id_etudiant="'.$_POST['id_etudiant'].'"');
header('Location: index.php');
exit();
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>


Jack Bocar
jackbocar
le 03/04/2012 à 17:56
jackbocar
ERREUR: le stripslashes() est inutil dans ton cas.

<form name="formulaire" method="post" action="edit_etudiant.php">
<p>Titre :</p>
<p><input type="text" id="nom" name="nom" size="30" maxlength="30" value="<?php print ''.$row["nom"].''; ?>"></p>
<p><input type="submit" value="Enregistrer"></p>
<p><input type="hidden" name="id_etudiant" value="<?php echo $_GET['id_etudiant']; ?>"></p>
</form>
jackbocar
le 03/04/2012 à 18:07
jackbocar
Essaie aussi ce code en page index.php, comme pour les autres, tu adaptes et tu sécurise

<?php
require ('connexion.php');

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql=('SELECT id_etudiant, nom FROM ETUDIANTS');
foreach ($dbh->query($sql) as $row)
{
$nom_id_etudiant=$row['id_etudiant'];
$nom=$row['nom'];


print '<span class="nom">'.$row['nom'].'</span>';

print '<a href="edit_etudiant.php?id_etudiant='.$nom_id_etudiant.'">Etiter Etudiant</a>';


}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours