Comment recuperer plusieur variable sui sont dans une BDD

airben
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 14:26

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

Mammouth du PHP | 19672 Messages

10 juin 2005, 14:31

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 14:34

Bonjour
ok je vais executer la requet .....

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 14:45

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

Guakamol
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 14:58

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:

Mammouth du PHP | 19672 Messages

10 juin 2005, 15:02

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);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:51

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 15:52

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

10 juin 2005, 15:54

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 16:08

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 16:14

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 16:35

J'ai sa maintenant comme erreur;

No Database Selected

Mammouth du PHP | 19672 Messages

10 juin 2005, 16:37

tu n'as pas quelque part une ligne du genre
mysql_select_db("nom_de_ta_base")
:?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 juin 2005, 16:38

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);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 16:43

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 :?