Aide sur fichier php

stefanelle -  
Alain_42 Messages postés 5413 Statut Membre -
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 315 Statut Membre 1
 
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
stefanelle
 
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
 
up
0
Alain_42 Messages postés 5413 Statut Membre 894
 
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