Aide sur fichier php
stefanelle
-
Alain_42 Messages postés 5413 Statut Membre -
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();
?>
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:
- Aide sur fichier php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
Salut,
Essaye plutôt :
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 :
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
Bonsoir,
Comme tu testes if(isset($_POST['btOk']
pas besoin de tous ces isset($_GET
fais tout simplement:
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
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>'; .....
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 :-(