Modifier le champs d'une bdd
Résolu
AlexandreParis13
Messages postés
154
Date d'inscription
Statut
Membre
Dernière intervention
-
AlexandreParis13 Messages postés 154 Date d'inscription Statut Membre Dernière intervention -
AlexandreParis13 Messages postés 154 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créer une page qui se nome modifier.php qui contient ceci:
J'arrive bien à afficher se contienne les champs mais je ne parvient à les modifier, je précise que je débute en PHP mais si je comprend bien il faut récupérer l'ID du champs mais là je ne sais pas comment faire si vous avez une idée.
j'ai bien effectué des recherches se qui m'a permis de trouver la ligne suivante:
Mais d'après se que j'ai pu apprendre il manque l'ID
J'ai créer une page qui se nome modifier.php qui contient ceci:
<?php $host = "localhost"; $user = "root"; $pass = ""; $bdd = "playlist"; // connection base de donnees mysql_connect($host, $user, $pass); //selection de la base mysql_select_db($bdd); if(!empty($_POST)){ //insertion des donnees dans ma base $artistes = $_POST['artistes']; $titres = $_POST['titres']; $player = $_POST['player']; $mp3 = $_POST['mp3']; $alpha = $_POST['alpha']; mysql_query("UPDATE musics SET artistes='$artistes', titres='$titres', player='$player', mp3='$mp3', alpha='$alpha'; WHERE id='?' "); } mysql_close(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Modifier un titre</title> <link rel="stylesheet" href="css/style.css" type="text/css" media="all" /> <link rel="stylesheet" href="css/font.css" type="text/css" media="all" /> <link rel="stylesheet" href="../css/960.css" type="text/css" media="all" /> </head> <body> <header><div class="container_12 header"> <div class="grid_8 prefix_1"> <h2>Modifier un titre</h2> </div><div class="grid_3"> <p><a href="/www.ahplaylist.net/" target="_blank" >Voir le site</a> | <a href="logout.php" >Déconexion</a></p> </div> </div></header> <div class="logout" ><p><a href="logout.php" >Déconexion</a></p></div> <div class="container_12 content" > <div class="grid_8 prefix_2 suffix_2" > <p>Revenir à la <a href="home.php">page home</a></p> <?php try{ // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=playlist', 'root', ''); } catch(Exception $e){ // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si tout va bien, on peut continuer // On récupère tout le contenu de la table musics if(isset($_GET['t'])){ $reponse = $bdd->query("SELECT * FROM musics WHERE titres='".$_GET['t']."' "); while ($donnees = $reponse->fetch()){ ?> <h1>Modifier <?php echo $donnees['titres']; ?> de <?php echo $donnees['artistes']; ?></h1> <form method="post" action="modifier.php?num=<?php echo $_GET['t']; ?>" > artiste <input type="text" value="<?php echo $donnees['artistes']; ?>" name="artistes" /><br /> titre <input type="text" value="<?php echo $donnees['titres']; ?>" name="titres" /><br /> url mp3 <input type="text" value="<?php echo $donnees['mp3']; ?>" name="mp3" /><br /> url video <textarea name="player" ><?php echo $donnees['player']; ?></textarea><br /> alpha <input type="text" value="<?php echo $donnees['alpha']; ?>" name="alpha" /><br /> <input type="submit" value="Modifier" /> <?php } } ?> </form> </div> </body> </html>
J'arrive bien à afficher se contienne les champs mais je ne parvient à les modifier, je précise que je débute en PHP mais si je comprend bien il faut récupérer l'ID du champs mais là je ne sais pas comment faire si vous avez une idée.
j'ai bien effectué des recherches se qui m'a permis de trouver la ligne suivante:
UPDATE musics SET artistes='$artistes', titres='$titres', player='$player', mp3='$mp3', alpha='$alpha'; WHERE id='?'
Mais d'après se que j'ai pu apprendre il manque l'ID
A voir également:
- Modifier le champs d'une bdd
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Modifier extension fichier - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
2 réponses
Bonjour,
Ton intuition est bonne, il faut passer l'id de la ligne à modifier.
Par ailleurs, tu as un petit problème de balise fermante </form>, qui est en dehors de ta boucle, alors que la balise ouvrante est dans la boucle.
Pour régler ça, deux choses à faire.
1 - Dans la boucle du formulaire, rajouter un input caché :
2 - Au niveau de ta requête de mise à jour, utiliser ce nouveau paramètre :
Xavier
Ton intuition est bonne, il faut passer l'id de la ligne à modifier.
Par ailleurs, tu as un petit problème de balise fermante </form>, qui est en dehors de ta boucle, alors que la balise ouvrante est dans la boucle.
Pour régler ça, deux choses à faire.
1 - Dans la boucle du formulaire, rajouter un input caché :
while ($donnees = $reponse->fetch()) { ?> <h1>Modifier <?php echo $donnees['titres']; ?> de <?php echo $donnees['artistes']; ?></h1> <form method="post" action="modifier.php?num=<?php echo $_GET['t']; ?>" > artiste <input type="text" value="<?php echo $donnees['artistes']; ?>" name="artistes" /><br /> titre <input type="text" value="<?php echo $donnees['titres']; ?>" name="titres" /><br /> url mp3 <input type="text" value="<?php echo $donnees['mp3']; ?>" name="mp3" /><br /> url video <textarea name="player" ><?php echo $donnees['player']; ?></textarea><br /> alpha <input type="text" value="<?php echo $donnees['alpha']; ?>" name="alpha" /><br /> <input type="hidden" name="id" value="<?php echo $donnees['id']; ?>" /> <input type="submit" value="Modifier" /> </form> <?php } } ?>
2 - Au niveau de ta requête de mise à jour, utiliser ce nouveau paramètre :
//insertion des donnees dans ma base $artistes = $_POST['artistes']; $titres = $_POST['titres']; $player = $_POST['player']; $mp3 = $_POST['mp3']; $alpha = $_POST['alpha']; $id = $_POST['id']; mysql_query("UPDATE musics SET artistes='$artistes', titres='$titres', player='$player', mp3='$mp3', alpha='$alpha' WHERE id='$id' ");
Xavier