sql vers formulaire php

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 12:14

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 ^^

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 12:17

voilà la table :

Image

Mammouth du PHP | 19672 Messages

27 juil. 2005, 12:17

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.
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

27 juil. 2005, 12:20

oui mais je suis obligé de liasser les doublons, c'est une table "croisée" si jpeux dire (cf screenshot)

Eléphant du PHP | 58 Messages

27 juil. 2005, 12:24

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 ^^ ++
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

Mammouth du PHP | 19672 Messages

27 juil. 2005, 12:25

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.
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

27 juil. 2005, 12:46

sadjiro peux tu me dire à quoi correspond $recupmenu1 ? merci =)

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 12:52

marche pas unexpected "<" dans le code balblabla -_-

Mammouth du PHP | 19672 Messages

27 juil. 2005, 12:53

Un petit tour ICI s'impose à mon avis... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 58 Messages

27 juil. 2005, 12:53

$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é ^^
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 13:00

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à ^^

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 13:04

jveux surtout savoir comment incorrporer du code html dans un code php pcq là ç chaque fois il me sort que "<" ou ">" foire tout...

Eléphant du PHP | 58 Messages

27 juil. 2005, 13:05

mdr je l'ai fait parlant pourtant ^^

c simple ^^ :

$requete = ta requete.

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

ca te va ?? ^^
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 13:09

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 ^^

Invité
Invité n'ayant pas de compte PHPfrance

27 juil. 2005, 13:19

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 >_<