Page 1 sur 2

sql vers formulaire php

Posté : 27 juil. 2005, 12:14
par Invité
Bonjour, voilà je suis perdu et je crois avoir besoin d'un peu beaucoup d'aide lol.

Alors déjà il faut s'imaginer une table SQL (qu'on appelera Table1), avec 5 colonnes (colonne1, colonne2, colonne3, colonne4, colonne5 lol).

Maintenant il faut imaginer 3 éléments "select name" (menu deroulant avec plusieurs choix) dans un formulaire (menu1, menu2, menu3).

C'est là que ça se complique maintenant ^^
Pour le Menu1, j'aimerai qu'il liste les élements contenus dans la Colonne1 et seulement les uniques, pas de doublons (parce qu'il y a plusieurs fois la même chose dedans mais j'aimerai que cela ne s'affiche qu'une fois ^^).

Pour le Menu2 c'est à peu près la même chose, sauf que ce sont les éléments d'une seule colonne d'une autre Table (Table2 par exemple), où ceux si sont égals aux noms des colonnes de Table1. Mais j'ai pas de problème pour ça si on m'aide pour le Menu1, le Menu2 c'est bon ^^.

Pour le Menu3 ça se corse encore plus :( Selon ce que l'on a choisit dans le Menu1 (correspondant aux éléments de la Colonne1 dans Table1) et selon ce qu'on a choisit dans le Menu2 (Correspondant au nom de toutes les colonnes de Table1 sauf la première (Colonne1)), j'aimerai qu'il me liste TOUT les éléments contenu dans la Table1 respectant la condition où NomElementDeColonne1 = NomSélectionnéDansMenu1 ET seulement les élements dans la Colonne choisie par rapport au Menu2.

Voilà je sais pas si je me suis très bien exmpliqué :/ vraiment besoin d'aide merci ^^

Posté : 27 juil. 2005, 12:17
par Invité
voilà la table :

Image

Posté : 27 juil. 2005, 12:17
par Cyrano
Oui, c'est relativement clair.

Premier problème, éviter les doublons : on fait ça lors de la requête avec

Code : Tout sélectionner

SELECT DISTINCT(nom_champ)...
Pour le second problème, va faire un tour dans le forum FAQ, il y a un PostIt sur les listes déroulantes dynamiques liées complet avec deux méthodes.

Posté : 27 juil. 2005, 12:20
par Invité
oui mais je suis obligé de liasser les doublons, c'est une table "croisée" si jpeux dire (cf screenshot)

Posté : 27 juil. 2005, 12:24
par sadjiro
avec un pseudo ça serai plus simple de savoir à qui en parle menfin bon...


je t'aide :

Code : Tout sélectionner

<select> $requete = mysql_query("SELECT * FROM Table1"); while ($recupmenu1 = mysql_fetch_array($requete)) { <option value="$i">$recupmenu1['colonne1']; }


après c'est tout con.

Code : Tout sélectionner

$requetemenu2 = mysql_query("SELECT * FROM Table2 WHERE Table1.colonne1 = Table2.colonne2");


en fait ton truc est un peu flou mais sert toi de la clause where et des variables :).

si tu peux faire un menu déroulant avec lien dynamiques ça sera mieux et plus simple :).

(pour ça chercher sur le net y en a plein en javascript).

après il te suffira de mettre tes variables dans l'URL.

sinon utilise la méthode POST du formulaire pour transmettre les données d'une page à une autre.

ton projet est assez simple, ne cherche pas compliquer :wink:
vala ^^ ++

Posté : 27 juil. 2005, 12:25
par Cyrano
Ou est le problème ? Dans ce cas, enregistres le tout dans un tableau (array) et affiche si différent de ligne précédente.

De toutes façon, tu devrais aller voir le post-it mentionné, ça va sûrement t'éclairer sur la procédure générale à mon avis.

Posté : 27 juil. 2005, 12:46
par Invité
sadjiro peux tu me dire à quoi correspond $recupmenu1 ? merci =)

Posté : 27 juil. 2005, 12:52
par Invité
marche pas unexpected "<" dans le code balblabla -_-

Posté : 27 juil. 2005, 12:53
par Cyrano
Un petit tour ICI s'impose à mon avis... :-k

Posté : 27 juil. 2005, 12:53
par sadjiro
$recupmenu1

comme son nom l'indique :P, est la récupération des données contenus dans la requete :).

et comme j'utilise la fonction "mysql_fetch_array"

il te découpe chaque colonne de ta requête.

c'est pourquoi :

$recupmenu1['colonne1'] = résultatcolonne1

et le "while" te permet de récup une par une tes infos :).

concraitement :

Code : Tout sélectionner

tant que (il ya des données dans ce que demande la requete) { je fait mon champ option avec la valeur $i //$i est une variable que tu dois incrémenter donc n'oublie pas à la fin de faire $i++ et avec écrit : résultat1colonne1 }
<option value = 2>

résultatcolonne2

..etc :)

vala ^^

j'espère que ca a pu t'aidé petit scarabé ^^

Posté : 27 juil. 2005, 13:00
par Invité
oui donc c'est le $requete en gros non ?

parce que tu m'as sorti des variables d''un coup je suis un peu perdu là ^^

Posté : 27 juil. 2005, 13:04
par Invité
jveux surtout savoir comment incorrporer du code html dans un code php pcq là ç chaque fois il me sort que "<" ou ">" foire tout...

Posté : 27 juil. 2005, 13:05
par sadjiro
mdr je l'ai fait parlant pourtant ^^

c simple ^^ :

$requete = ta requete.

$recupmenu1 = informations de ta requete sous forme de tableau :)

ca te va ?? ^^

Posté : 27 juil. 2005, 13:09
par Invité
bah je comprend jamais le code des autres en fait ^^

en gros Table nommé Table1, une seule Colonne appellée Colonne1, 5 éléments dedans appellés Machin1, Machin2, ... Machin5.

donc, comment on liste ça dans un menu déroulant ? j'aimerai du code brut je comprend mieux avec ca en fait ^^ Celui qu'à filer Cyrano en 1er est trop long rien que de le voir ça me fait du mal lol ^^

Posté : 27 juil. 2005, 13:19
par Invité
Type :
<select name="type">
<php
$requete = "SELECT * FROM Type";
$rs = mysql_query($requete);
$ligne = mysql_fetch_array($rs);
while($ligne = mysql_fetch_row($result))
{
echo '<otion value='$ligne[0]'>'$ligne[0]'';
}
?>

------------------

Parse error: syntax error, unexpected '<' in c:\wamp\www\toscane_mainteneurs\saisie.php on line 15

------------------

là il me dit c mort en gros >_<