recupérer les données

Répondre
elodyb
le 10/08/2005 à 16:20
elodyb
je vous ai envoyé le message aavnt d'avoir votre derniere réponse
elodyb
le 10/08/2005 à 16:22
elodyb
j'ai bien lu votre dernier code mais moi je ne fais pas de liste déroulante j'affiche juste le sproduits dan sun tableau , jetez un coup d'oeil svp sur mon le code que je vous ai mis peut etre que ça sera plus clair
merci
Bzh
le 10/08/2005 à 16:32
Bzh
Je n' ai pas reçu de message.

Ensuite si c' est dans un tableau c' est encore plus simple.

<a href="form_confirm_modif.php?idproduit=ce_que_tu_veux">Cliquez ici pour voir le détail</a>

Enfin je ne sais pas si tu me suis...
J' ai peut être mal compris.

Il faut que tu construises ton lien en fonction de l' id.

exemple:
<a href="form_confirm_modif.php?idproduit=1">Cliquez ici pour voir le détail du produit 1</a>

<a href="form_confirm_modif.php?idproduit=2">Cliquez ici pour voir le détail du produit 2</a>

<a href="form_confirm_modif.php?idproduit=3">Cliquez ici pour voir le détail du produit 3</a>

<a href="form_confirm_modif.php?idproduit=4">Cliquez ici pour voir le détail du produit 4</a>


Mais attention, tu as oublié le '?' dans l' adresse. Le '&' ne sert qu' à séparer les variables.

Voila !!!

Et ensuite, dans ta page 'form_confirm_modif.php' tu gère l' affichage comme tu le fais. C' est bon...

Bye...
elodyb
le 10/08/2005 à 16:58
elodyb
je pense que c'est moi qui m'exprime mal peut etre qu'en lisant ce code vous comprendrez mieux ce que je cherche à faire
le code en dessous compilé donne ceci
a gauche les produits et à droite les 2 boutons ajouter, modifier

je clique sur un produit il est alors surligné en ble comme je dis bien les listes de sélections par la suite je clique sur modifier et c'est seulement à partir de ce moment là qu'il devra m'afficher les détails du produits
<?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 "<a href = 'form_confirm_modif.php?idproduit=256';</script>\n";
else echo "<script language='Javascript'>alert('Sélectionnez une produit !');</script>\n";
break;
}
}
?>
Bzh
le 11/08/2005 à 01:55
Bzh
Oki, je comprends bien !!!

Deux solutions. Une solution qui permet de tout avoir sur la même page, ce qui, parcontre, complique la maintenance même si cela simplifie le site car il comportera moin de fichier. Ou bien, la deuxième solution qui comporte plusieur pages.

Voici la première solution:
<?php
//Très important !!! On teste tout d' abord si les variables $_POST['bouton'] et $_POST['idproduit'] n' existe pas. Si elle n' existe pas on affiche la page des choix
if ( ! isset($_POST['bouton']) and ! isset($_POST['idproduit']))
{
?>


<select name="idproduit">
<?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>

<?
//Si les variables $_POST['bouton'] et $_POST['idproduit'] existe et bien on choisi l' action à exécuter en fonction de la variable $_POST['bouton'].
}else{


//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);

//On teste pour savoir si on ajoute...
if( $_POST['bouton'] == "Ajouter" ){

//On met ici le code de la page d' ajout

//On teste pour savoir si on supprime
}else if( $_POST['bouton'] == "Supprimer" ){

//On met ici le code de la page de suppression


//On teste pour savoir si on modofie
}else if( $_POST['bouton'] == "Modifier" ){

//On met ici le code de la page de modification

}
}

//Et voila, ce n' est pas plus compliqué que cela !!!
?>


La deuxième solution est de rediriger le navigateur comme tu le faisais. Mais nous on va le faire en PHP !!!!
<?php


//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);

//On teste pour savoir si on ajoute...
if( $_POST['bouton'] == "Ajouter" ){

//On redirige vers la page d' ajout
header("Location page_ajouter.php?idproduit=$id_produit");

//On teste pour savoir si on supprime
}else if( $_POST['bouton'] == "Supprimer" ){

//On redirige vers la page de suppression
header("Location page_supprimer.php?idproduit=$id_produit");


//On teste pour savoir si on modofie
}else if( $_POST['bouton'] == "Modifier" ){

//On redirige vers la page de modification
header("Location page_modifier.php?idproduit=$id_produit");

}
}

//Et voila, ce n' est pas plus compliqué que cela !!!
?>


Ou une troisième solution consiste à inclure dans notre page le code des autres pages:
<?php


//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);

//On teste pour savoir si on ajoute...
if( $_POST['bouton'] == "Ajouter" ){

//On redirige vers la page d' ajout
require("page_ajouter.php");

//On teste pour savoir si on supprime
}else if( $_POST['bouton'] == "Supprimer" ){

//On redirige vers la page de suppression
require("page_supprimer.php");


//On teste pour savoir si on modofie
}else if( $_POST['bouton'] == "Modifier" ){

//On redirige vers la page de modification
require("page_modifier.php");
}
}

//Et voila, ce n' est pas plus compliqué que cela !!!
?>


A toi de choisir la méthode qui te plait le plus.Et il y a surement d' autre solution à ton problème. Mais de toute façon, si tu dois faire des redirections c' est que ton script est mal pensé !!!

Bye et bon courage...
elodyb
le 11/08/2005 à 08:08
elodyb
je viens juste d'avoir la réponse , je vais la tester mais d'abord quelle méthode me conseillez vous moi qui ne connais pas encore grand chose en terme de mise à jour et autre
je ne saurai comment vous remercier,
elodyb
le 11/08/2005 à 08:42
elodyb
bon j'ai fini par prendre la methode2 mais je ne sais pas si c'est la bonn eoupas mais elle me parait plus simple pour quelqu'un comme moi
mais il n'aime pas cette ligne-->$id_produit = mysql_real_escape_string($_POST['idproduit']);

Notice: Undefined index: idproduit in c:\program files\easyphp1-7\www\sitef\gestionp2.php on line 55 (idproduit n'est pas défini)

je vou met le nouveau code peut etre que ça sera plus facile à comprendre
<?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>

<?php


//On récupère l' id de notre produit en le protègeant des attaques par injection
$id_produit = mysql_real_escape_string($_POST['idproduit']);

//On teste pour savoir si on ajoute...
if (isset($_POST['bouton']))
{
switch(stripslashes($_POST['bouton']))
{
case 'Ajouter' :
//On redirige vers la page d' ajout
header("Location page_ajouter.php?idproduit=$id_produit");
break;

case 'Modifier' :
if (isset($_POST['idproduit']))
//On redirige vers la page de suppression
header("Location page_supprimer.php?idproduit=$id_produit");
break;

//On teste pour savoir si on modofie
case 'Supprimer' :
if(isset($_POST['idproduit']))
//On redirige vers la page de modification
header("Location page_modifier.php?idproduit=$id_produit");
break;
}
}
?>

merci
Bzh
le 11/08/2005 à 17:38
Bzh
Oui !!! Mais si vous regardez bien, vous remarquerez que l' on redirige vers les nouvelles pages en insérant une nouvelle variable.

Exemple: header("Location page_modifier.php?idproduit=$id_produit");

On a créé une nouvelle variable qui se nome 'idproduit' et qui est de type GET.

Donc, dans votre nouvelle page, il est important que vous récupériez la valeur de cette variable en utilisant le tableau $_GET[].

Donc '$id_produit = mysql_real_escape_string($_POST['idproduit']);'
va se transformer en '$id_produit = mysql_real_escape_string($_GET['idproduit']);'

J' éspère être clair !!!!

Bye...
elodyb
le 12/08/2005 à 08:33
elodyb
merci, j'ai mieux compris pour le GET mais cependant ça m'affiche toutjours le meme message d'erreur, est ce que l'erreur pourrait venir de page_ajouter.php?
Bzh
le 12/08/2005 à 11:00
Bzh
L' erreur se trouve dans le fichier 'gestionp2.php' à la ligne 55.

Vous pouvez me montrer un petit bout de code tournant autour des lignes 50 à 60 ???
Répondre
LoadingChargement en cours