Aide sur fichier php

Fermé
stefanelle - 26 févr. 2009 à 17:35
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 26 févr. 2009 à 23:06
Bonjour,

j ai une table avec deu champs id_label et nom_label

et une table contenu avec 6 champs : id, id_label, reference, artiste, album, format

voial j ai un fichier php qui recupere la valeur d'un tableau avec les references artiste ... et qui m affiche la ligne correspondant a la reference choisie sous forme de tableau avec de stexte box pour modifier sauf que mon update fonctionne pas il m affiche une page blanche quand je clique sur modifier avez vous une idée ?

Merci

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Catalogue</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body link="#000000" vlink="#FFFFFF" alink="#FFFFFF">
<div id="body">

<?php

include ('config.php');
include ('connexion.php');

//reference

$reference = $_GET["reference"];



$sql = "SELECT reference, artiste, album, format FROM contenu WHERE reference='".$_GET

['reference']."'" ;
$req = mysql_query($sql) or die( mysql_error() ) ;
$total = mysql_num_rows($req);


if($total!=0)

{
echo '<form method ="post" action="modifier.php">';
echo '<table>'."\n";
echo '<tr>';

echo '<td ><b><u>reference</u></b></td>';
echo '<td><b><u>artiste</u></b></td>';
echo '<td><b><u>album</u></b></td>';
echo '<td><b><u>format</u></b></td>';
echo '</tr>'."\n";

while($row = mysql_fetch_array($req))

{
echo '<tr>';
echo '<td><input type="text" name="reference" value="'.$row

["reference"].'"/></td>';
echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>';
echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>';
echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>';
echo '</tr>'."\n";
}

echo '</table>'."\n";
echo '<input type="submit" name="btOk" value="Modifier"/>';
echo '</form>';
if (isset($_POST['btOk']))
{


$sql3= "UPDATE contenu SET reference='".$_POST['reference']."',artiste='".$_POST

['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference

='".$_GET['reference']."'" ;



$req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());



if($req3)


{
echo ("L'insertion a été correctement effectuée") ;
}

else

{
echo("L'insertion à échouée") ;
}

}

}

?>
</body></html>


<?php
mysql_close();
?>
A voir également:

2 réponses

Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
26 févr. 2009 à 17:56
Salut,

Essaye plutôt :
$sql3= "UPDATE contenu SET artiste='".$_POST

['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference

='".$_POST['reference']."'" ;


Remarque :
- Si référence est la clé primaire, on ne devrait pas pouvoir la modifier.
- Ton formulaire est passé en post donc tu n'as plus de $_GET
- Mettre le traitement avant l'affichage me parait plus logique, car là, tu raffiches les anciennes valeurs et ensuite tu fais ton update donc on ne voit pas vraiment les données de la BDD.
- Il faudrait donc aussi changer :
$reference = $_GET["reference"];
par
if(isset($_GET["reference"])) $reference = $_GET["reference"];
elseif(isset($_POST["reference"])) $reference = $_POST["reference"];
else // redirection => pas de référence
0
alors tout d abord merci :-)

j ai modifié l update toujours page blanche, reference ne st pas une cle primaire et j ai modifie if(isset($_GET["reference"])) $reference = $_GET["reference"];
elseif(isset($_POST["reference"])) $reference = $_POST["reference"];
else // redirection => pas de référence


et la il mey query is empty a l arrivée sur la page :-(
0
stefanelle > stefanelle
26 févr. 2009 à 20:58
up
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 févr. 2009 à 23:06
Bonsoir,

Comme tu testes if(isset($_POST['btOk']

pas besoin de tous ces isset($_GET

fais tout simplement:

......
if (isset($_POST['btOk']))
{
$sql3= "UPDATE contenu SET artiste='".$_POST
['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference='".$_POST['reference']."'" ;
$req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
........


et pas besoin de reference='".$_POST['reference']."' après le SET car tu ne vas pas modifier un champ qui est ta référence dans la condition WHERE

et mets readonly dans l'input reference car si ce champ est modifiable et modifié par l'utilsateur, l'UPDATE ne marchera pas

...
echo '<tr>';
echo '<td><input type="text" name="reference" value="'.$row["reference"].'" readonly /></td>';
echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>';
.....
0