Page 1 sur 2

Comment recuperer plusieur variable sui sont dans une BDD

Posté : 10 juin 2005, 14:26
par airben
Bonjour

J'ai vais essayer d'etre le plus claire possible.
Je viens de faire une formulaire (utlisant la methode post , avec fichier de validation pour insere les champs rempli dans ma base).

Dans ce formulaire il y a entre autres(nom ,prenom,ville ..) un champ où l'on doit mettre une reference .

Cette reference correspond a une annonce. Les annonces sont misent en ligne en remplissant un formulaire (reference , intitilé de l'annonce,type d'annonce) . les annonces sont visulidés dans une page du site les une en dessous des autres , un menu deroulant permet de choisir le type d'annonces que l'on souhaite voir. (remarque c'est a partir de la connexion a la base de donnée que les annnoces sont vu en ligne) .

Moi ce que je souhaite c'est mettre un lien sur chaque annonce .Ce lien m'ouvre le formulaire d'inscription que j'ai fais et deplus le champ reference est rempli automatiquement avec la reference de l'annonce.

J'espere que c'est comprehensible ce que j'ai ecris

Moi , J'ai commencer par faire sa (voire LE BOUT DE code ) mais la reference ne s'affiche pas dans le formulaire d'inscription (essai22.php) :

BOUT DE Code des annonces

Code : Tout sélectionner

Code:<? $db = mysql_connect("***.***.***", "root",""); mysql_select_db("root",$db); $requete = "SELECT * FROM annonce ORDER BY date DESC"; $envoi = mysql_query($requete); while($tableau = mysql_fetch_array($envoi)) { $numero = $tableau['numero']; $date = $tableau['date']; $titre = $tableau['titre']; $contenu = $tableau['contenu']; $contenu = str_replace("\n","<br>",$contenu); $contact = $tableau['contact']; $email = $tableau['email']; $ref = $tableau['ref']; ?> <br> <font color="#333333" size="2" face="Arial, Helvetica, sans-serif"><b> <? print $titre; ?></b></font> <br><br> <font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><? print $contenu; ?></font> <br><br> <font color="#333333" size="2" face="Arial, Helvetica, sans-serif">Si vous etes interressé par cette annonce [b] // Voici la partie que j'ai rajouté[/b] <? echo "<a href='essai22.php?numero=".$tableau['numero']."'>cliquer ici </a>"; ?> <br> E-Mail : <a href="mailto:<? print $email; ?>"><? print $email; ?></a></font><br> <hr size="1" noshade> <? } mysql_close($db); ?> </td>
Bout de code du formulaire de saisi (essai.php)

Code : Tout sélectionner

Code: return true; } </script> </head> <? $numero = $_GET['numero']; $db = mysql_connect("***.****.****", "root",""); $result="SELECT ref FROM annonce WHERE numero=$numero" ; ?> <body> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <form name="formulaire" enctype="multipart/form-data" method="post" action="valider.php" onSubmit="return verif_formulaire()"> </td> <tr> // voila ce que j'ai rajouter mais la reference ne s'affiche pas <td height="19" colspan="2" ><span class="style2">Réference de l'annonce : </span><input type='hidden' name='ref' value="<?php echo $result; ?>"></td> </tr> <tr> <td height="19" colspan="2" ><span class="style2">Intitil&eacute; de l'annonce : </span></td> </tr><tr> <td height="19" colspan="2" ><span class="style2"><strong>Votre identité</strong></span></td> </tr> <tr> <td height="2" colspan="2" style="background-image:url(C:charte\nav_relief.gif)" ></td> </tr> <tr> <td class="style2">Nom* :</td> <td width="73%" class="style2"><input name="nom" type="text" id="nom" maxlength=30 value=""></td> ------------ --------- ------------ </form> </body> </html>
Si quequ'un peut m'aider MERCI BIEN :?
Je n'est aucun message d'erreur

Posté : 10 juin 2005, 14:31
par Cyrano
SAlut, faudrait que tu nous traduise "visulidés", je suis pas sur que ce soit "validés" ou "visualisé"

Essaye de faire afficher ta requête pour l'exécuter directement dans phpMyAdmin et vir si tu as un retour à ce niveau là: Reviens ensuite si c'est pas ça et on cherchera plus loin.

Posté : 10 juin 2005, 14:34
par Invité
Bonjour
ok je vais executer la requet .....

Posté : 10 juin 2005, 14:45
par Invité
Bonjour

Quand j'execute cette requette dans phpadmin.
SELECT ref FROM annonce WHERE numero=$numero
Sa marche en remplassant $numero par un chiffre qui correspond a une reference de la basedd

Posté : 10 juin 2005, 14:58
par Guakamol

Code : Tout sélectionner

<input type='hidden' name='ref' value="<?php echo $result; ?>">
c ici que ca va pas

Pour recuperer la valeur de ta reference il faut que tu "execute" ta requete (si j'ai bein suivi ca doit etre

Code : Tout sélectionner

$req = mysql_query($result)
puis que tu enregistre le resultat de cette requete dans une variable (on appelle ca un recordSet)
Generalement on utilise une boucle du genre
(while($data=mysql_fetch_array)
{
$ref = $data["ref"];
.....
....
}

Code : Tout sélectionner

Je ne peux que te conseiller de jeter un oeil au tuto tres bien fait de phpFrance :wink:

Posté : 10 juin 2005, 15:02
par Cyrano
ok, alors si il revient bien des données et qu'elles ne s'affichent pas, on va essayer autre chose:
Il faut faire afficher les variables qui arrivent: si c'est un tableau, avec print_r() pour voir ce qu'on a comme retour.

Remplace aussi ta fonction
$contenu = str_replace ("\n", "<br />",$contenu)
par
 $contenu = nl2br($contenu);

Posté : 10 juin 2005, 15:51
par Invité
Au niveau des annoce cela s'affiche , tous le contenu le titre tous s'affiche dans la page des annonces. La où sa ne s'affiche pas c'est dans le formulaire . ATTEND.... je vais reprondre mon probleme;

Enfaite comme je l'ai expliquer plus haut,

il y a un formulaire qui permet de mettre(editer) des annonce en ligne (avec les champ; reference, titre, contenu ...)

Une fois les annonces editer , on peut les voirs les une en dessous des autres sur une page (page annonce) , dans cette page il ya un menu deroulant qui permet de selectionner le type d'annonce que l'on souhaite voir .

Moi ce que je souhaite faire c'est mettre dans la page des annonces (en dessous de chaque annonce )un lien vers un formulaire d'inscription (identité de la personne interréssé par l'annonce) . Dans ce formulaire il faut que je recupere la reference et le titre de l'annonce de maniere automatique .

Ainsi celui qui est interréssé par l'annonce n'aurra plus qu'a mettre son nom prenom .....

Pour ma part le formulaire d'inscription je les faits ainsi que la base de donnée qui va avec .
Ce que je veus faire c'est recuperer la reference et le titre de l'annonce et les mettre automatiquement dans le formulaire d'inscription

Voila j'espere que c'est pes tros confu ce que j'ai ecris :?
Merci bien

Posté : 10 juin 2005, 15:52
par zeus
Guakamol a raison, la requete n'est pas exécutée

Tu passe directement la requete et non pas le résultat de la requete

Posté : 10 juin 2005, 15:54
par Cyrano
Alors en récupérant les informations sur chaque annonce, tu dois pouvoir récupérer un identifiant que tu ajoutes en paramètres à l'url du lien pour chaque annonce: ensuite tu récupères cet identifient dans la superglobale $_GET et tu crée la requête sur la base de cet identifiant.... j'avoue que je vois pâs trop où se trouve la difficulté, mais bon, c'est vrai que pour moi c'est un peu devenu l'enfance de l'art

Posté : 10 juin 2005, 16:08
par Invité
Voila ... J'ai repris mon code , mais sa ne marche toujour pas, j'ai une erreur du type

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\htdocs\essai22.php on line 173
Code:

Code : Tout sélectionner

return true; } </script> </head> <? $num = $_GET['numero']; $db = mysql_connect("******","*****","******"); $requete="SELECT ref,titre FROM annonce WHERE numero=$num" ; $res = mysql_query($requete); while($tableau = mysql_fetch_array($res)) // 173 { $numero = $tableau['numero']; $titre = $tableau['titre']; } ?> <body> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <form name="formulaire" enctype="multipart/form-data" method="post" action="valider.php" onSubmit="return verif_formulaire()"> </td> <tr> // voila ce que j'ai rajouter mais la reference ne s'affiche pas <td height="19" colspan="2" ><span class="style2">R&eacute;ference de l'offre : </span><input type='hidden' name='ref' value="<?php echo $numero; ?>"></td> </tr> <tr> <td height="19" colspan="2" ><span class="style2">Intitil&eacute; de l'offre : </span><input type='hidden' name='ref' value="<?php echo $titre; ?>"> </td> </tr><tr> <td height="19" colspan="2" ><span class="style2"><strong>Votre identité</strong></span></td> </tr> <tr> <td height="2" colspan="2" style="background-image:url(C:charte\nav_relief.gif)" ></td> </tr> <tr> <td class="style2">Nom* :</td> <td width="73%" class="style2"><input name="nom" type="text" id="nom" maxlength=30 value=""></td> ------------ --------- ------------ </form> </body> </html>

Code de la page des annonce

Code : Tout sélectionner

<? $db = mysql_connect("***.***.***", "root",""); mysql_select_db("root",$db); $requete = "SELECT * FROM annonce ORDER BY date DESC"; $envoi = mysql_query($requete); while($tableau = mysql_fetch_array($envoi)) { $numero = $tableau['numero']; $date = $tableau['date']; $titre = $tableau['titre']; $contenu = $tableau['contenu']; $contenu = str_replace("\n","<br>",$contenu); $contact = $tableau['contact']; $email = $tableau['email']; $ref = $tableau['ref']; ?> <br> <font color="#333333" size="2" face="Arial, Helvetica, sans-serif"><b> <? print $titre; ?></b></font> <br><br> <font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><? print $contenu; ?></font> <br><br> <font color="#333333" size="2" face="Arial, Helvetica, sans-serif">Si vous etes interressé par cette annonce [b] // Voici la partie que tu m'a dis de rajouter j'ai rajouté[/b] <? echo "<a href='essai22.php?numero=".$tableau['numero']."'>cliquer ici </a>"; ?> <br> E-Mail : <a href="mailto:<? print $email; ?>"><? print $email; ?></a></font><br> <hr size="1" noshade> <? } mysql_close($db); ?> </td>
La je commence a m'enbroiller grave , :shock:
MERCI

Posté : 10 juin 2005, 16:14
par zeus

Code : Tout sélectionner

$requete="SELECT ref,titre FROM annonce WHERE numero=".$num; //Sors les variables du code $res = mysql_query($requete); while($tableau = mysql_fetch_array($res)) // { $numero = $tableau['numero']; $titre = $tableau['titre']; } ?>
Dans $tableau, tu va avoir un champ retourné par ta requete par colonne, ta requete retourne les champs ref et titre, donc le tableau $tableau contient les colonnes ref et titre mais ne contient pas la colonnes numero

Ensuite, pour l'erreur, c'est que ta requete sql est fausse

teste la directement depuis phpMyAdmin

Posté : 10 juin 2005, 16:35
par Invité
J'ai sa maintenant comme erreur;

No Database Selected

Posté : 10 juin 2005, 16:37
par Cyrano
tu n'as pas quelque part une ligne du genre
mysql_select_db("nom_de_ta_base")
:?:

Posté : 10 juin 2005, 16:38
par zeus
PAs de base de données sélectionnée

Bon, allez, je ferme les yeux en me disant que tu ne connais pas la syntaxe :
mysql_select_db($db);

Posté : 10 juin 2005, 16:43
par Invité
C'est vrai tu a reson, bien vu !

Mais maintenant j'ai cette erreur
Notice: Undefined index: numero in, c:\program files\easyphp1-8\www\htdocs\annonce\essai22.php on line 177

"C'est a se tordre le coup" ce programme :?