Pb de variables

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2005, 11:16

Bonjour,

Je n'arrive pas à afficher des données venant ds la base. Il me dit que ma variable est indefine.... ma variable 'idpoisson'

Ca dois venir du register global mais j'ai pas bien compris, qi quelqu'un pouvait m'éclairer

<?php

include('connection.inc.php');
$query = "SELECT * FROM poisson WHERE idpoisson='$idpoisson'";
$result = mysql_query($query);

$nb = mysql_numrows($result);

Merci d'avance

while ($val = mysql_fetch_array($result))

{ /* On parcoure les résultats de la requête */


$espece = $val["espece"];
$nom = $val["nom"];
$idpoisson = $val["idpoisson"];
$image = $val["image"];
$taillebac = $val["taillebac"];

echo "
<table width='600' border='0' cellspacing='5' cellpadding='5' >
<tr>
<td width='100'><font size='2' face='Geneva, Arial, Helvetica, sans-serif'><strong><IMG SRC='img/$image' border=0 height='75' width='80'></strong></font></td>
<td width='25%'><font size='2' face='Geneva, Arial, Helvetica, sans-serif'><a href='poisson2.php?idpoisson=$idpoisson'><strong>$espece</strong></A></font></td>
<td width='25%'><font size='2' face='Geneva, Arial, Helvetica, sans-serif'><a href='poisson2.php?idpoisson=$idpoisson'><strong>$nom</strong></A></font></td>
<td width=''><font size='2' face='Geneva, Arial, Helvetica, sans-serif'><a href='poisson2.php?idpoisson=$idpoisson'><strong>$taillebac</strong></A></font></td>
</tr>

</table>

";

}
mysql_close();
?>
</td>
</tr>
</table>
</body>
</html>

Mammouth du PHP | 859 Messages

15 avr. 2005, 11:23

Si la valeur de $idpoisson est passée via l'url alors tu mets :
$query = "SELECT * FROM poisson WHERE idpoisson='".$_GET['idpoisson']."'";
Si la valeur de $idpoisson est postée via un formulaire alors tu mets :
$query = "SELECT * FROM poisson WHERE idpoisson='".$_POST['idpoisson']."'";
Explication : http://www.phpfrance.com/forums/voir_sujet-48.php

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2005, 12:29

ok, merci je commence à comprendre.

Mais dans le cas d'une mise à jour ou modifications des donnés, cela se passe de la même maniere au niveau des variables?

Dans mon cas je récupere les donnes et les affichent dans un champ, jusque la tout va bien pas d'erreur.

Mais au moment de mettre à jour la base, il ne sa passe rien pas de message d'erreur rien

voici le code de ma page qui recupere les données

<?php

include('connection.inc.php');
$query = "SELECT * FROM personnel where id='".$_GET['id']."'";
$result = mysql_query($query);

$nb = mysql_numrows($result);

while ($val = mysql_fetch_array($result))

{
$id = $val["id"];
$nom = $val["nom"];
$prenom = $val["prenom"];
}

mysql_close();
?>
</div>
<form method="post" action=" modification.php" enctype="multipart/form-data">
<p>
<strong>Nom :</strong><br>
<input type="texte"name="nom" value="<? echo "$nom"; ?>">
<br>
<BR>
<strong>Prénom :</strong><br>
<input type="texte"name="prenom" value="<? echo "$prenom"; ?>">
<br>
<BR>
<p align="center">
<input type="hidden" name="id" value="<? echo "$id"; ?>">
<input type="submit" value="Valider">
<a href="personnel.php">Annuler</A> </span> </p>
</FORM></td>
</tr>
</table>



et la le code qui met à jour la bdd


<?php

include('connection.inc.php');




$query = "UPDATE personnel SET nom='".$_POST['nom']."',prenom='".$_POST['prenom']."', WHERE id='".$_POST['id']."'";
$result = mysql_query($query);

mysql_close();

header('location: personnel.php');

?>

merci d'avance, désoleé avec mes questions de noobs :/

Mammouth du PHP | 859 Messages

15 avr. 2005, 12:36

Peut-être la virgule en trop avant le WHERE :
$query = "UPDATE personnel SET nom='".$_POST['nom']."',prenom='".$_POST['prenom']."', WHERE id='".$_POST['id']."'";

ViPHP
ViPHP | 2144 Messages

15 avr. 2005, 12:37

Tu ne fais aucune vérification, c'est normale qu'il n'y ai pas de messages d'erreur
test $result pour savoir si t'on update a donné quelques chose. ou mieux, ajouter un or die(mysql_error())
$result = mysql_query($query) or die(mysql_error());