Menu deroulant et Mysql

Menu deroulant et Mysql - PHP - Programmation

Marsh Posté le 23-01-2003 à 12:16:11    

slt,
 
Je voudrais créée un menu déroulant dont les valeurs sont celles d'un champs d une base Mysql.
Je fais comment ?
si vous connaissez des bon tutorial sur php/mysql je vux bien les liens.
 
Merci  d avance.

Reply

Marsh Posté le 23-01-2003 à 12:16:11   

Reply

Marsh Posté le 23-01-2003 à 12:23:26    

Reply

Marsh Posté le 23-01-2003 à 12:26:06    

salut :hello:
 
tient j'ai fait ca :

Code :
  1. <select name="lieu">
  2.           <option value=""></option>
  3. <?PHP
  4. $link = @mysql_connect("localhost","login","passe" ) or exit();
  5. mysql_select_db("db_name" ) or exit();
  6. $query = "select lieu from lieu order by lieu ASC";
  7. $result = mysql_query ($query) or die ("Impossible d'exécuter la requete<br>$query<br>" );
  8. while ( $row = mysql_fetch_row($result) ) {
  9. echo"        <option value=\"$row[0]\">$row[0]</option><br>";
  10. }
  11. mysql_free_result($result);
  12. ?>
  13.         </select>


cette table contient, different lieu trié pas ordre alphabetique
 
ya mieux (enfin je crois) mais c'est deja ca;)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 20-05-2006 à 20:50:18    

up mais pour les champs d'une base access SVP ?

Reply

Marsh Posté le 20-05-2006 à 21:06:19    

La même chose, en utilisant l'odbc...

Reply

Marsh Posté le 22-05-2006 à 09:14:18    

ok mais quand tu découvre PHP + odbc, tu aimes bien qu'on te file un coup de main. Sur le net, c dur dur de trouver des tutos là dessus : a part avec mysql on trouve pas grand chose....
Merci de me filer un coup de main la-dessus

Reply

Marsh Posté le 22-05-2006 à 16:10:52    

Dur dur, faut le dire vite pour pas mentir longtemps hein, une recherche sur google te renvoit vers ça,  ou encore ça ou même ça.
 
Dur dur en effet :)

Reply

Marsh Posté le 22-05-2006 à 17:39:32    

T'as juste a creer un lien odbc(panneau de configuration->outils d'administration->sources de donnees) pointant sur ta base de donnees access. En cas de difficultes tu trouveras de l'aide en cherchant un peu sur google ;)
 
En ce qui concerne le php, t'as plus qu'a utiliser les methodes d'acces a l'odbc. Tu pourras les trouver dans la doc php ou encore dans divers tutoriaux.
 
Donc rien de vraiment complique, il suffit juste de se mettre au travail! lol

Reply

Marsh Posté le 22-05-2006 à 18:41:37    

Du PHP avec une base access c'est tout simplement ridicule! Access ça te fait de la DB qui fait 20 Mo pour deux enregistrements de 4 caractères... Et, de plus, je pense qu'un cou d'ASP serait plus aprioprié!


Message édité par dwogsi le 22-05-2006 à 18:43:54
Reply

Marsh Posté le 30-05-2006 à 13:42:23    

serieusement les gars, y'a vraiment pasq gd chose sur le PHP+access, a part bien sur comment se connecter a une base, faire un echo etc...dès qu'on veut un truc qui sort un peu de l'ordinaire (quoi que je suis pas certain qu'un menu deroulant le soit) on ne trouve rien; que du mysql !
De plus, si je tourne avec access c pour des questions de maintenance. Tout le monde ne connait pas forcement mysql alos qu'une BD access tout le monde en a déja tripoté une dans sa vie...
Bref, tout ça pour dire que je suis toujours coincé avec cette fichue fonction de menu déroulant...
 
Imaginons :
j'ai une base access qui s'appelle "vehicules" et une table "voitures" contenant les champs "ref", "marque" et "couleur".
 
je fais donc :  
 

Code :
  1. <?php
  2. include 'connexion_base.php';   //parametres de connexion
  3. $select = 'SELECT marque, couleur FROM voitures';
  4. $resultat = odbc_result ($cnx,$select);
  5. mais après pour avoir ce fichu menu deroulant contenant les marques de bagnoles ????
  6. ?>


Message édité par snp le 30-05-2006 à 13:42:54
Reply

Marsh Posté le 30-05-2006 à 13:42:23   

Reply

Marsh Posté le 30-05-2006 à 17:17:02    

Faut pas être borné non plus, tu dis toi même que les tutos te disent comment faire un echo. Ca tombe bien, un menu déroulant, c'est rien d'autre qu'une suite d'écho.
 
Et pour la logique qu'il y a derrière, access/mysql/db2/oracle, c'est pareil.
 
(pas un peu débutant en html et/ou php aussi des fois ?)

Reply

Marsh Posté le 01-06-2006 à 10:42:44    

je vous jure que je fais ce que je peux. Dans le cas qui m'interesse, quelqu'un peut m'expliquer ou est mon erreur ? je me retrouve avec une liste deroulante vide :
 

Code :
  1. <?php
  2.         include('../../include/connexion_base.php');
  3.         echo '<select name="utilisateurs">'."\n";
  4.         //echo '<option value="">--Choisir--</option>'."\n";
  5.         $result = odbc_exec("SELECT initiales FROM utilisateurs ORDER BY initiales" );
  6.         while($data =  odbc_fetch_array($result))
  7.         {
  8.            echo '<option value="'.$data[1].'">'.$data['initiales'];
  9.            echo '</option>'."\n";
  10.         }
  11.         echo '</select>'."\n";
  12.        odbc_close($cnx);
  13.        ?>


Message édité par snp le 01-06-2006 à 10:42:53
Reply

Marsh Posté le 01-06-2006 à 15:18:44    

eup SVP

Reply

Marsh Posté le 01-06-2006 à 15:58:48    

Le manuel :
 

Citation :

resource odbc_exec ( resource connection_id, string query_string [, int flags] )


 
Premier argument d'un odbc_exec : normalement, ton $cnx, deuxième argument : la requête.
 
(je vais même pas perdre mon temps à me demander pourquoi j'ai donner des liens vers des tutos plus haut alors qu'il y en a un qui fait exactement une liste déroulante depuis Access avec l'odbc.)

Reply

Marsh Posté le 01-06-2006 à 17:31:22    

bon sang ! ça marche ! j'ai bien ma liste deroulante de ce que contient la base access !!! grand merci naceroth !
Franchement, je ne trouve vraiment pas grand chose sur le net la-dessus, merci pr le coup de main !
Par contre, dans mon $_POST, c kelle valeur que je dois appeller ? g tout essayer : data, initiales, utilisateurs, result etc....ma BD ne me rempli pas le champ des initiales selectionné

Reply

Marsh Posté le 01-06-2006 à 17:57:48    

$_POST['utilisateurs'] puisque c'est comme ça que tu appelles ton select. Par contre, ça existe $data[1] avec un odbc_fetch_array ? (vérifie dans le code source de la page :))

Reply

Marsh Posté le 02-06-2006 à 08:49:21    

En effet j'ai dans mon code source :
Undefined offset:  0 in...
Undefined offset:  0 in...
Undefined offset:  0 in...
Undefined offset:  0 in...
ça veut dire koi exactement ? et comment ça se regle ?

Reply

Marsh Posté le 02-06-2006 à 12:19:41    

up SVP

Reply

Marsh Posté le 02-06-2006 à 15:56:30    

Ce qu'il y a de bien avec les messages d'erreurs de php, c'est qu'ils indiquent la ligne de l'erreur. Sauf quand on s'amuse à ne pas recopier le message en entier :D
 
Bref, regarde la ligne de ton script qui correspond à la ligne donnée par le message d'erreur, parce que nous, on est pas devin (surtout qu'il n'y a pas de tableau avec un offset 0 dans le code source que tu donnes plus haut, ce qui implique que tu l'as modifié et qu'on a plus rien sur quoi se baser)

Reply

Marsh Posté le 02-06-2006 à 18:25:35    

Désolé d'etre lourd  :pfff: . j'ai beau consulté des sites et des sites et des....je ne comprends pas toujours tout. On ne parle pas le même langage... En fait, cette source je l'ai trouvé sur le net mais je ne comprends pas trop a quoi correspondent les "[]" ni pourquoi il fo faire un odb_fetch_array. C vraiment flou tout ça !
Merci de m'aider naceroth (et les autres...)
 
ci-joint donc, mon formulaire :

Code :
  1. <?php
  2.         include('../../include/connexion_base.php');
  3.         echo '<select name="utilisateurs">'."\n";
  4.         //echo '<option value="">--Choisir--</option>'."\n";
  5.         $result = odbc_exec($cnx, "SELECT initiales FROM utilisateurs ORDER BY initiales" );
  6.         while($datac =  odbc_fetch_array($result))
  7.         {
  8.            echo '<option value="'.$datac[0].'">'.$datac['initiales'];
  9.     //echo '<option value="">'.$datac['initiales'];
  10.            echo '</option>'."\n";
  11.         }
  12.         echo '</select>'."\n";
  13.        odbc_close($cnx);
  14.        ?>


 
et mon add_devis.php :
 

Code :
  1. <body>
  2. <?php
  3. //DONNEES RECUPEREES de formulaire_add_devis.php
  4. $designation=$_POST['designation'];
  5. $client=$_POST['client'];
  6. $filiale=$_POST['filiale'];
  7. $createur=$_POST['utilisateurs'];
  8. $today = date (" j/m/Y" );
  9. require ('../../include/connexion_base.php');
  10. $query = 'insert into devis (designation,date_creation,client,filiale,etude)';
  11. $query .= " VALUES ('$designation','$today','$client','$filiale','$createur')";
  12. $result = odbc_exec( $cnx, $query );
  13. odbc_close( $cnx);
  14. ?>
  15. <script language="javascript">
  16. alert("Le nouveau devis <?php echo $designation ?> a été ajouté à la base de données" );
  17. window.close();
  18. </script>
  19. </body>


 
Mon code source du formulaire :

Code :
  1. <body>
  2. <select name="filiale">
  3. <br />
  4. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  5. <option value="">Allemagne</option>
  6. <br />
  7. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  8. <option value="">Angleterre</option>
  9. <br />
  10. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  11. <option value="">Autriche</option>
  12. <br />
  13. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  14. <option value="">Belgique</option>
  15. <br />
  16. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  17. <option value="">Chine</option>
  18. <br />
  19. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  20. <option value="">Danemark</option>
  21. <br />
  22. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  23. <option value="">Espagne</option>
  24. <br />
  25. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  26. <option value="">Etats-Unis</option>
  27. <br />
  28. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  29. <option value="">France</option>
  30. <br />
  31. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  32. <option value="">Hollande</option>
  33. <br />
  34. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  35. <option value="">Italie</option>
  36. <br />
  37. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  38. <option value="">Scandinavie</option>
  39. <br />
  40. <b>Notice</b>:  Undefined offset:  1 in <b>formulaire_add_devis.php</b> on line <b>76</b><br />
  41. <option value="">Suisse</option>
  42. </select>
  43. <select name="utilisateurs">
  44. <br />
  45. <b>Notice</b>:  Undefined offset:  0 in <b>formulaire_add_devis.php</b> on line <b>101</b><br />
  46. <option value="">DAG</option>
  47. <br />
  48. <b>Notice</b>:  Undefined offset:  0 in <b>formulaire_add_devis.php</b> on line <b>101</b><br />
  49. <option value="">SLD</option>
  50. <br />
  51. <b>Notice</b>:  Undefined offset:  0 in <b>formulaire_add_devis.php</b> on line <b>101</b><br />
  52. <option value="">SLS</option>
  53. <br />
  54. <b>Notice</b>:  Undefined offset:  0 in <b>formulaire_add_devis.php</b> on line <b>101</b><br />
  55. <option value="">SNP</option>
  56. </select>


Message édité par snp le 02-06-2006 à 18:33:38
Reply

Marsh Posté le 02-06-2006 à 18:35:39    

Oui, donc, php te dit (à raison) qu'il n'y a pas d'élément 0 dans le tableau $datac (ce qui tout à fait exact, le manuel précisé bien que l'odbc commence sa numérotation à partir de 1 et pas 0 comme mysql).
 
Corrige ton code en  

Code :
  1. echo '<option value="'.$datac[1].'">'.$datac['initiales'];


 
Et regarde s'il y a bien une valeur attribuée à value (et si elle est bonne s'il y en a une) ou si il ne faudrait pas plutôt mettre

Code :
  1. echo '<option value="'.$datac['initiales'].'">'.$datac['initiales'];


 
:)

Reply

Marsh Posté le 02-06-2006 à 18:37:37    

Ah bah voilà, avec le code source de la page, on a fait un grand pas en avant, essaye la deuxième écriture pour les options :)

Reply

Marsh Posté le 02-06-2006 à 18:57:13    

Punaise, j'hallucine !
ça marche ! chuis vert .
UN GRAND MERCI NACEROTH !!!!!!
 
euh....dit, je peux encore pauser une question bête ? c a propos des checkbox...

Reply

Marsh Posté le 02-06-2006 à 19:03:10    

Allez, je me jette à l'eau....!
voici la question (attention, c compliqué  :pt1cable: :
 
J'ai un formulaire qui contient des chekbox que j'envoie avec POST:

Code :
  1. <input type="checkbox" name="doc_joint[]" value="Plans" >
  2.      <span class="IntraBE">Plans</span>
  3.      <input type="checkbox" name="doc_joint[]" value="Cahier des charges">
  4.       <span class="IntraBE">Cahier des charges</span>
  5.      <input type="checkbox" name="doc_joint[]" value="Normes">
  6.       <span class="IntraBE">Normes</span>
  7.      <input type="checkbox" name="doc_joint[]" value="Autres">
  8.       <span class="IntraBE">Autres</span>


 
Je récupère mes valeurs comme ça :

Code :
  1. $doc=$_POST['doc_joint'];


 
et dans le PDF généré avec FPDF j'obtiens comme résultat "array" ! Comprends pas....
DE plus, j'ai beau essayer de bidouiller, j'arrive pas a afficher avec echo les cases sélectionnée...
 
c balot, non ?
 


Message édité par snp le 02-06-2006 à 19:07:19
Reply

Marsh Posté le 02-06-2006 à 19:28:25    

T'as vraiment du mal avec les tableaux php toi :)
 
Oui, donc, comme tu appelles tes checkbox de cette manière, ce que tu vas récupérer va être un tableau php (d'où le array qui apparait dans le pdf), faut donc accéder aux valeurs en utilisant la notation propre aux tableaux ($doc[0], $doc[1] etc) ou par une boucle foreach par exemple.
 
La doc générale sur les tableaux php
et celle sur la structure foreach
 
(sinon, rubrique "je chipote", il y a une balise <label> pour lier une checkbox et son titre cfr w3schools :))

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed