recupérer les données

Répondre
elodyb
le 10/08/2005 à 14:46
elodyb
bonjour à tous,
j'ai créé un formuliare qui affiche tous les films sur la page et je veux quand je clique sur le bouton modifier qu'il recupere les données du film sélectionnés à savoir le nom, la description et l'affiche sur une page form_confirm_modif.php
c'est avec cette page que j'ai des problemes il n'affiche rien dans les zones de texte
si quelqu'un peut m'aider ça m'aidera bcp
merci d'avance

code form_confirm_modif.php
<?php
// modification
if(isset($_GET['idproduit']))
{
$rqt = "SELECT * FROM produit WHERE idproduit=".$_GET['idproduit'];
$res = mysql_query($rqt) or die(mysql_error());
$curseur = mysql_fetch_row($res);
$idproduit = mysql_insert_id();
}
?>
<table cellSpacing=1 cellPadding=4 bgColor="#000000" border=0>
<tr>
<td width="100%" height=24 vAlign="middle" bgColor="#ffba00">
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Ajout produit
</FONT></td></tr>

<br>
<table align="center">
<tr>
<td width="169" height="24" valign="top">Nom </td>
<td width="144" valign="top">
<input name="nomproduit" type="text" value="<? if (isset($curseur[1])) echo $curseur[1]; ?>"></td>
</tr>

<tr>
<td height="24" valign="top">Description</td>
<td valign="top">
<input name="descproduit" type="text"></td>
</tr>
</table>
</tr>
</table>

?>
Bzh
le 10/08/2005 à 15:10
Bzh
Pour commencer, évite vraiment le
SELECT *
Remplace le par
SELECT ce_que_tu_veux, et_encore_ce_que_tu_veux
C' est important pour la rapidité d' acces.

Ensuite, si a mon avis rien n' apparait c' est peut être à cause de deux choses:

la première: Tu teste l' existance de la variable.Donc si la variable n' existe pas sa n' affiche pas. Pas terrible pour débuger. Remplace
<? if (isset($curseur[1])) echo $curseur[1]; ?>
par
<? echo $curseur[1]; ?>
Comme ça, si ta variable n'existe pas (ce qui n' est pas normal) tu auras un message d' erreur.Et c' est déja beaucoup mieu pour le débugage.

La deuxième: C'est peut être parce que dans ta base de donné, le champs est vide ou null. Vérifie ça...
____________________________________________________________________

Autre chose très grave. Tu as une faille dans ton script. On peut tenter une injection de SQL !!!

Remplace
<?php
// modification
if(isset($_GET['idproduit']))
{
$rqt = "SELECT * FROM produit WHERE idproduit=".$_GET['idproduit'];
$res = mysql_query($rqt) or die(mysql_error());
$curseur = mysql_fetch_row($res);
$idproduit = mysql_insert_id();
}
?>
par
<?php
// modification
if(isset($_GET['idproduit']))
{
$id_produit = mysql_real_escape_string($_GET['idproduit']);

$rqt = "SELECT * FROM produit WHERE idproduit='$id_produit'";
$res = mysql_query($rqt) or die(mysql_error());
$curseur = mysql_fetch_row($res);
$idproduit = mysql_insert_id();
}
?>


____________________________________________________________________

Et pour terminer, ce serait bien que tu revois un peu le cour sur la diférence entre " et ' pour les variables et les chaines de caratères.

Bye...
elodyb
le 10/08/2005 à 15:13
elodyb
merci,
je fais les modifications en espérant que ça marchera
elodyb
le 10/08/2005 à 15:24
elodyb
je vous remercie pour votre aide
j'ai fais les modifications mais il ya ce message d'erreru comme quoi curseur n'est pas défini

<b>Notice</b>: Undefined variable: curseur in <b>on line <b>34</b>
Bzh
le 10/08/2005 à 15:37
Bzh
Ha et bien voila !!!

On avance là !!!

On mon avis, cela vient tout simplement du fait que
<?php
// modification
if(isset($_GET['idproduit']))
{
$rqt = "SELECT * FROM produit WHERE idproduit=".$_GET['idproduit'];
$res = mysql_query($rqt) or die(mysql_error());
$curseur = mysql_fetch_row($res);
$idproduit = mysql_insert_id();
}
?>
n' est pas logique du tout !!!!

Modifie en
<?php
// modification
if(isset($_GET['idproduit']))
{
$rqt = "SELECT * FROM produit WHERE idproduit=".$_GET['idproduit'];
$res = mysql_query($rqt) or die(mysql_error());
$curseur = mysql_fetch_row($res);
$idproduit = mysql_insert_id();
?>
<table cellSpacing=1 cellPadding=4 bgColor="#000000" border=0>
<tr>
<td width="100%" height=24 vAlign="middle" bgColor="#ffba00">
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
Ajout produit
</FONT></td></tr>

<br>
<table align="center">
<tr>
<td width="169" height="24" valign="top">Nom </td>
<td width="144" valign="top">
<input name="nomproduit" type="text" value="<? if (isset($curseur[1])) echo $curseur[1]; ?>"></td>
</tr>

<tr>
<td height="24" valign="top">Description</td>
<td valign="top">
<input name="descproduit" type="text"></td>
</tr>
</table>
</tr>
</table>
<?php

}else{ echo '<p>La variable "idproduit" n\' est pas déclaré...</p>'; }

?>


Une erreur de corrigé.

Bon pour terminer, cela vient de ta variable "$_GET['idproduit']" qui n' est pas déclaré.

Il faut absolument que tu appel ta page avec
ta_page.php?idproduit=ta_valeur
Sinon, sa ne peut pas marcher !!!

Bye et bon courage...
elodyb
le 10/08/2005 à 15:48
elodyb
c'est parfait avec to aide j'avance
mais bon j'ai appelé ma page comme vous me l'avez sugéré
<?php
echo "<script language='Javascript'>location.href = 'form_confirm_modif.php&idproduit=".$_POST['idproduit']." ';</script>\n";?>


mais il met page introuvable et pourtant sur la barre d'adresse l'id du produit est bien recupéré car il me met ceci form_confirm_modif.php&idproduit=256

en tout cas je vous remerci bcp, je n'ai pas avancé depuis un bon moment
Bzh
le 10/08/2005 à 15:57
Bzh
Hey !!!!

Mais c' est vraiment la mode du javascript c' est pas vrai ça !!!

Pourquoi vouloir toujours utiliser le javascript alors que l' on peut faire la même chose en simple html ou en php !!!

Le javascript n' est là SEULEMENT pour agrémenter le site et SURTOUT pas pour la navigation direct dans le site.

Si, moi, je refuse le javascript, tu peux me dire comment je navigue dans ton site ???

J' ai du mal a suivre ta logique. Pourquoi passer par cette page alors que tu peux très bien récupérer, dans ta page 'form_confirm_modif.php', la valeur de '$_POST['idproduit']'. Au lieu de passer par cette page que va transformer la variable $_POST en $_GET !!! Je trouve ça bizard !!!

Donne plus d' info sur ce que tu veux faire parce que là je te suis pas tellement !!!

Bye...
elodyb
le 10/08/2005 à 16:07
elodyb
honnetement si ce que je veux faire est possible en php et html c'est tant mieux.
je ne cherche pas à utiliser du javascript, je débutesmiley
ce que je cherche à faire, sur la liste de produits je clique sur un produit par exemple produit 1 et je veux etre redirigé vers une page qui affiche tous les autres données correspondan t au produit 1 par exemple la description du produit pour que je puisse modifier et enregitrer les nouvelles valeurs

merci infiniment, je vous enquiquine avec toutes ces questions smiley
Bzh
le 10/08/2005 à 16:19
Bzh
Ha !!!!

Donc oui !!! Deux solutions s' offrent à toi !!!

Une en javascript et une autre en html !!!

La première en javascript !!!

<form action="form_confirm_modif.php" method="GET" enctype="application/postscript">

<select name="idproduit" onChange="javascript:submit();">
<option value="0">Nom</option>
<option value="0">Nom</option>
<option value="0">Nom</option>
</select>


</form>


Voila pour le javascript !

Pour la deuxième méthode sans javascript:
<form action="form_confirm_modif.php" method="GET" enctype="application/postscript">

<select name="idproduit">
<option value="0">Nom</option>
<option value="0">Nom</option>
<option value="0">Nom</option>
</select>

<p><input type="submit" value="Valider"></p>

</form>

Et sans javascript.

A la limite, tu peux mélanger les deux. Si le javascript ne fonctionne pas il pourra tjrs valider manuellement le formulaire.


Et maintenant, plus besoin de page intermédiaire ni de retoucher a ta page form_confirm_modif.php !!!

Voila comment il faut s' y prendre !!!
elodyb
le 10/08/2005 à 16:19
elodyb
je vous met la page de gestion de produit peut etre que ça sera plus claire comme ça

le probleme c'est au niveau de la page form_confir_modif qui est censé récapitulé les données du produit sélectionnés
merci encore
<?php

// construction de la liste des produits
$rqt = "SELECT idproduit, nomproduit FROM produit ORDER BY nomproduit";
$res = mysql_query($rqt, $connexion);
echo $rqt;
echo $res;


while ($curseur = mysql_fetch_array($res))
echo "<option value=".$curseur[0].">".$curseur[1];
?>
</select></td></tr></table></td>
<td align="center" valign="top"><br><br>
<p><input type="submit" name="bouton" value="Ajouter"></p>
<p><input type="submit" name="bouton" value="Supprimer" ></p>

<p><input type="submit" name="bouton" value="Modifier"></p>
</td></table>
<br>
</fieldset>
<br>
</form>
</td></table>

<?

if (isset($_POST['bouton']))
{
switch(stripslashes($_POST['bouton']))
{
case 'Ajouter' :
//echo "<script language='Javascript'>location.href = 'index.php?page=form_produit';/script>\n";
echo "<script language='Javascript'>location.href = 'form_produit.php';</script>\n";
echo "<script language='Javascript'>alert('return verifier_formulaire()');</script>\n";
break;
case 'Modifier' :
if (isset($_POST['idproduit']))
echo "<script language='Javascript'>location.href = 'form_confirm_modif.php&idproduit=".$_POST['idproduit']." ';</script>\n";
else echo "<script language='Javascript'>alert('Sélectionnez une produit !');</script>\n";
break;
}
}
?>
Répondre
LoadingChargement en cours