Modification bdd en PHP
Résolu
Dominique
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'aimerais pouvoir faire une modification dans une base de données depuis une page php.
J'ai une base de donnée avec mes films, résumé, acteurs,...
Je demande à la personne qui veut modifier quelque chose le nom du film, il se peut qu'il y en ait plusieurs (de films) donc j'affiche tous les films avec un bouton (echo '<form action="modifierFilm.php" method="post"><input type = submit value ="modifier"></form>';).
Le problème est que je ne sais pas comment prendre la valeur du film que la personne veut modifier.
Le code est le suivant:
echo '<table>';
echo '<tr><td width=20%></td><td width=80%></td></tr>';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo '<tr><td rowspan="6">';
$image = htmlspecialchars(stripslashes($row['Image']));
echo '<img src = '.$image.'>';
echo '</td><td> <B>';
echo htmlspecialchars(stripslashes($row['Nom']));
echo '</B></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Annee']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Genre']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Acteur']));
echo '</i></td></tr>';
echo '<tr><td colspan ="2">';
echo htmlspecialchars(stripslashes($row['Resume']));
echo '</td></tr>';
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post"><input type = submit value ="modifier"></form>';
echo '</TD></TR>';
}
echo '</table>';
quelqu'un peut m'aider?
Merci d'avance
j'aimerais pouvoir faire une modification dans une base de données depuis une page php.
J'ai une base de donnée avec mes films, résumé, acteurs,...
Je demande à la personne qui veut modifier quelque chose le nom du film, il se peut qu'il y en ait plusieurs (de films) donc j'affiche tous les films avec un bouton (echo '<form action="modifierFilm.php" method="post"><input type = submit value ="modifier"></form>';).
Le problème est que je ne sais pas comment prendre la valeur du film que la personne veut modifier.
Le code est le suivant:
echo '<table>';
echo '<tr><td width=20%></td><td width=80%></td></tr>';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo '<tr><td rowspan="6">';
$image = htmlspecialchars(stripslashes($row['Image']));
echo '<img src = '.$image.'>';
echo '</td><td> <B>';
echo htmlspecialchars(stripslashes($row['Nom']));
echo '</B></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Annee']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Genre']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Acteur']));
echo '</i></td></tr>';
echo '<tr><td colspan ="2">';
echo htmlspecialchars(stripslashes($row['Resume']));
echo '</td></tr>';
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post"><input type = submit value ="modifier"></form>';
echo '</TD></TR>';
}
echo '</table>';
quelqu'un peut m'aider?
Merci d'avance
A voir également:
- Modification bdd en PHP
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Modification dns - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
11 réponses
Bonjour,
Il te suffit de glisser l'identifiant du film dans ton formulaire, sous forme cachée bien sûr, comme ceci :
Bien sûr il faut t'assurer de sélectionner l'identifiant du film dans ta requête SQL, de manière à pouvoir l'envoyer dans le formulaire.
Ensuite, dans ton script de traitement 'modifierFilm3.php', tu n'auras plus qu'à récupérer l'identifiant du film en question via :
Il te suffit de glisser l'identifiant du film dans ton formulaire, sous forme cachée bien sûr, comme ceci :
echo '<form action="modifierFilm3.php" method="post"> echo '<input type="hidden" id="idFilm" value="'.$row['id_film'].'"/>'; echo '<input type = submit value ="modifier"></form>';
Bien sûr il faut t'assurer de sélectionner l'identifiant du film dans ta requête SQL, de manière à pouvoir l'envoyer dans le formulaire.
Ensuite, dans ton script de traitement 'modifierFilm3.php', tu n'auras plus qu'à récupérer l'identifiant du film en question via :
<?php $idFilm = ""; if ( isset($_POST['idFilm']) && !empty($_POST['idFilm']) ) $idFilm = $_POST['idFilm']; $sql = ".... WHERE id_film = '".$idFilm."' .... "; ?>
Certes, mais ta remarque ne fait pas vraiment avancer...
Peux-tu donner tout le code de ta page, c'est à dire requete SQL incluse.
Idem pour le code de ton script de modification.
Merci.
Peux-tu donner tout le code de ta page, c'est à dire requete SQL incluse.
Idem pour le code de ton script de modification.
Merci.
$idFilm = "";
if ( isset($_POST['idFilm']) && !empty($_POST['idFilm']) )*/
$idFilm = $_POST['idFilm'];
echo ' ID '.$idFilm.' du Film <br>';
$query = "select nom from Films WHERE ID like '".$idFilm."'";
$resultat = mysql_query($query);
$num_res = mysql_num_rows($resultat);
echo ' il y a '.$num_res.' résultat';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($resultat);
echo 'le nom du film est : '.$row[0];
}
le problème c'est que row[0] qui doit contenir le nom du film mais ne contient rien!!
if ( isset($_POST['idFilm']) && !empty($_POST['idFilm']) )*/
$idFilm = $_POST['idFilm'];
echo ' ID '.$idFilm.' du Film <br>';
$query = "select nom from Films WHERE ID like '".$idFilm."'";
$resultat = mysql_query($query);
$num_res = mysql_num_rows($resultat);
echo ' il y a '.$num_res.' résultat';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($resultat);
echo 'le nom du film est : '.$row[0];
}
le problème c'est que row[0] qui doit contenir le nom du film mais ne contient rien!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Si la variable $idFilm est vide c'est que l'erreur est avant le script de traitement.
Le code que tu viens de mettre c'est celui de la page de traitement suite à ton formulaire si je ne me trompe pas. J'ai mal précisé, ce que voulais c'est le code entier de ton formulaire, requête SQL de sélection incluse.
Si la variable $idFilm est vide c'est que l'erreur est avant le script de traitement.
Le code que tu viens de mettre c'est celui de la page de traitement suite à ton formulaire si je ne me trompe pas. J'ai mal précisé, ce que voulais c'est le code entier de ton formulaire, requête SQL de sélection incluse.
@$db = mysql_connect(host, user) or die("Impossible de se connecter : " . mysql_error());
mysql_select_db('maTable');
$query = "select * from Film where Nom like '%".$film."%'";
$res = mysql_query($query) or die("requête fausse");
$num_res = mysql_num_rows($res);
if($num_res == 0){
echo ' <B><CENTER>Ce film n existe pas!</CENTER></B> <br>';
}else{
echo '<table>';
echo '<tr><td width=20%></td><td width=80%></td></tr>';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo '<tr><td rowspan="6">';
$image = htmlspecialchars(stripslashes($row['Image']));
echo '<img src = '.$image.'>';
echo '</td><td> <B>';
echo htmlspecialchars(stripslashes($row['Nom']));
echo '</B></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Annee']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Genre']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Realisateur']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Acteur']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo strtoupper(htmlspecialchars(stripslashes($row['Type'])));
echo '</i></td></tr>';
echo '<tr><td colspan ="2">';
echo htmlspecialchars(stripslashes($row['Resume']));
echo '</td></tr>';
echo '<tr><td colspan ="2">';
echo ' ';
echo '</td></tr>';
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post">';
echo '<input type="hidden" id="idFilm" value="\'.$row[\'ID\'].\'"/>';
echo '<input type = submit value ="modifier"></form>';
echo '</TD></TR>';
...
ca c'est le code où il y a la liste des films la personne clique sur le bouton correspondant au film.
$idFilm = "";
if ( isset($_POST['idFilm']) && !empty($_POST['idFilm']) )
$idFilm = $_POST['idFilm'];
$query = "select Nom from Film WHERE ID like '".$idFilm."'";
$res = mysql_query($query);
$num_res = mysql_num_rows($res);
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo 'le nom du film est : '.$row[0].' <br>';
}
mysql_select_db('maTable');
$query = "select * from Film where Nom like '%".$film."%'";
$res = mysql_query($query) or die("requête fausse");
$num_res = mysql_num_rows($res);
if($num_res == 0){
echo ' <B><CENTER>Ce film n existe pas!</CENTER></B> <br>';
}else{
echo '<table>';
echo '<tr><td width=20%></td><td width=80%></td></tr>';
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo '<tr><td rowspan="6">';
$image = htmlspecialchars(stripslashes($row['Image']));
echo '<img src = '.$image.'>';
echo '</td><td> <B>';
echo htmlspecialchars(stripslashes($row['Nom']));
echo '</B></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Annee']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Genre']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Realisateur']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo htmlspecialchars(stripslashes($row['Acteur']));
echo '</i></td></tr>';
echo '<tr><td><i>';
echo strtoupper(htmlspecialchars(stripslashes($row['Type'])));
echo '</i></td></tr>';
echo '<tr><td colspan ="2">';
echo htmlspecialchars(stripslashes($row['Resume']));
echo '</td></tr>';
echo '<tr><td colspan ="2">';
echo ' ';
echo '</td></tr>';
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post">';
echo '<input type="hidden" id="idFilm" value="\'.$row[\'ID\'].\'"/>';
echo '<input type = submit value ="modifier"></form>';
echo '</TD></TR>';
...
ca c'est le code où il y a la liste des films la personne clique sur le bouton correspondant au film.
$idFilm = "";
if ( isset($_POST['idFilm']) && !empty($_POST['idFilm']) )
$idFilm = $_POST['idFilm'];
$query = "select Nom from Film WHERE ID like '".$idFilm."'";
$res = mysql_query($query);
$num_res = mysql_num_rows($res);
for($i=0; $i<$num_res;$i++){
$row = mysql_fetch_array($res);
echo 'le nom du film est : '.$row[0].' <br>';
}
En fait l'ID du film je l'ai sur la 1er page, mais c'est quand je la "transmets" avec le bouton que je le perd! Quand je clique sur le bouton j affiche une nouvelle page et quand je veux afficher l'ID du film il est vide
Re,
Si tu cherches la ligne de code de ton formulaire (sur le champ invisible) comme ceci :
Ca donne quoi ?
Tu as bien un champ "ID" dans ta table qui fait référence à l'identifiant du film au moins ? (on ne sais jamais)
Si tu cherches la ligne de code de ton formulaire (sur le champ invisible) comme ceci :
echo '<input type="hidden" id="idFilm" name="IdFilm" value="'.$row['ID'].'"/>';
Ca donne quoi ?
Tu as bien un champ "ID" dans ta table qui fait référence à l'identifiant du film au moins ? (on ne sais jamais)
Voila ai réussi en faisant comme ca:
$dataID = htmlspecialchars(stripslashes($row['ID']));
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post">';
echo '<input type="hidden" name="idFilm" value="'.$row['ID'].'">';
$dataID = htmlspecialchars(stripslashes($row['ID']));
echo '<TR><TD colspan = "3"><CENTER>';
echo '<form action="modifierFilm3.php" method="post">';
echo '<input type="hidden" name="idFilm" value="'.$row['ID'].'">';