Problême liste déroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problême liste déroulante

Re: Problême liste déroulante

par Julie17 » 06 déc. 2011, 20:08

Personne n'a de solutions svp?

Re: Problême liste déroulante

par Julie17 » 05 déc. 2011, 19:33

Je suis désolée d'insister autant mais j'ai mon projet à rendre pour dans une semaine et je n'arrive pas à avancer...
Si quelqu'un peu m'aider?

Re: Problême liste déroulante

par Julie17 » 05 déc. 2011, 13:56

J'ai copier coller votre scripte et j'obtiens toujours une page blanche quand je clique sur le premier ok...

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 13:04

à priori, avec les bornes SFR, on ne peut pas se connecter à un serveur FTP et FileZila utilise le protocole FTP

Re: Problême liste déroulante

par Julie17 » 03 déc. 2011, 12:50

Et aujourd' hui je ne suis pas chez moi j ai une connexion internet ou je passe par une borne sfr. Or quand je modifie mes pages php je dois les mettre dans un dossier via filezila pour voir si elle fonctionne mais celui ci ne veut pas se connecter..il y a une solution?

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 12:37

en fait, il faut juste remplacer la ligne :
$connexion = odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql", "login", "password");
par :
$connexion = odbc_connect("oiseaux","","");

mais ça me paraît étonnant que ça fonctionne avec juste "oiseaux" comme 1er paramètre pour la fonction odbc_connect()

dix2

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 12:32

ou peut être Access

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 12:31

connecte-toi et regarde si c'est MySQL, Oracle, MS SQL, PostgreSql ...

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 12:29

c'est un serveur de base de donnée fournit par mon école.
Vous pouvez y accéder si je vous donne un mot de passe et un login.
ça, on va éviter
niveau sécurité, c'est moyen

Re: Problême liste déroulante

par Julie17 » 03 déc. 2011, 12:27

c'est un serveur de base de donnée fournit par mon école.
Vous pouvez y accéder si je vous donne un mot de passe et un login.

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 12:24

Voici un code qui fonctionne sur mon poste avec serveur MySQL :
page 1 :
<html>
  <body>
    <!--CREATION DE LA PAGE PERMETTANT A L'UTILISATEUR DE SELECTIONNER DEUX DATES-->
    <form method="POST" action="deuxiemedate.php">
<?php
  // On établit la connexion avec la BDD
  $connexion = odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql", "login", "password");
  //$connexion = odbc_connect("Server=localhost;Database=mysql", "root", "");
  odbc_exec($connexion, "USE oiseaux");
  // On crée la requête permettant de récupérer les dates d'observation
  $req_date_dd = "SELECT DISTINCT date FROM Observations ORDER BY date";
  //On traite la requête
  $result_date_dd = odbc_exec($connexion,$req_date_dd);
  echo "Sélectionner la date de début [d'observation]:";
  echo "<select name='liste_dd'>";
  while(odbc_fetch_row($result_date_dd)){
    echo '<option value="'.odbc_result($result_date_dd,'date').'">';
    echo odbc_result($result_date_dd,"date");
    echo "</option>";
  }
  echo "</select>";
  echo "<br/>";
  odbc_free_result($result_date_dd);
  echo "<input type='submit' value='GO' size='3' name='bt_date_dd'>";
?>
    </form>
  </body>
</html>
page 2:
<html>
  <body>
<?php
if(isset($_POST['liste_dd'])){
  $valeur_dd = $_POST["liste_dd"];
  $connexion = odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql", "login", "password");
  odbc_exec($connexion, "USE oiseaux");
  $req_date_df = "SELECT DISTINCT date FROM Observations WHERE date>'$valeur_dd' ORDER BY date";
  $result_date_df = odbc_exec($connexion,$req_date_df);
  echo '<form method="GET" action="troisiemePage.php">';
  echo "Sélectionner la date de fin [d'observation]:";
  echo "<select name='liste_dd2'>";
  while(odbc_fetch_row($result_date_df)){
    echo '<option value="'.odbc_result($result_date_df,'id_observation').'">';
    echo odbc_result($result_date_df,"date");
    echo "</option>";
  }
  echo "</select>";
  odbc_free_result($result_date_df);
  echo "<input type='submit' value='GO' size='3' name='bt_date_df'>";
  echo "</form>";
}
?>
  </body>
</html>
Quel serveur de base de données utilises-tu ?

dix2

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 10:59

pour éviter d'avoir plusieurs fois la même date, il faut mettre le mot-clé 'DISTINCT'
ce qui donne pour la 1ère page :
$req_date_dd = "SELECT DISTINCT date FROM Observations";

et pour la 2ème page :
$req_date_df = "SELECT DISTINCT date FROM Observations WHERE date>'$valeur_dd'";

dix2

Re: Problême liste déroulante

par sirakawa » 03 déc. 2011, 10:34

Bjr,
Si la deuxième page n'affiche strictement rien, le problème ne vient pas de la requete, mais de la valeur passée.
2ème page:
<html>
<body>
<?php
errror_reporting(E_ALL); // peut aider
//1 pour voir ce qui est reçu (penser à sélectionner une valeur dane la page 1)
print_r ($_POST);
if (isset($_POST['liste_dd']))
{
$valeur_dd=$_POST["liste_dd"];
$connexion=odbc_connect("oiseaux","","");
$req_date_df="select date from Observations where date>'$valeur_dd'group by date";
//2 vérification des valeurs passées et tenter de passer la requete à la base par un autre moyen....
print "<br>requete> $req_date";
/
// 3 serait peut-être mieux avant l'emploi d'une fonction
require "fonctionsODBC.php";
$result_date_df=odbc_exec($connexion,$req_date_df);
echo "Sélectionner la date de fin [d'observation]:";
//4 il faudrait éventuellement examiner creer_liste si $result_date_df est correct
print "<br>result_date ==>$result_date<==";
//4b si result_date_df est incorrect, enlever les quotes
creer_liste($result_date_df,"liste_df","id_observation","date");
odbc_free_result($result_date_df);
echo"<input type='submit' value='GO' size='3' name='bt_date_df'>";
echo "</form>";
}
?>
</body>
</html>

Re: Problême liste déroulante

par dix2 » 03 déc. 2011, 10:26

salut,

1) Dans tes 2 requetes, il y a "group by date", or ceci n'a de sens que si il y a un 'MAX', 'AVG', COUNT', après ton select
donc les 2 "group by date", il faut les retirer
peut etre, tu veux trier par date auquel cas il faut mettre "ORDER BY date"

2) la 16ème ligne du 1er script doit etre remplacée par :
echo '<option value="'.odbc_result($result_date_dd,'id_observation').'">';

3) il faudrait que tu nous donnes le code de la fonction creer_liste() et que tu nous dises de quel type est le champ 'date' dans la base de données

@+
dix2

Re: Problême liste déroulante

par Julie17 » 03 déc. 2011, 10:06

Personne n'a de solutions?
Parce que je ne comprend vraiment pas pourquoi quand je clique sur ok de la première page je tombe sur une page blanche. Et comme il n'y a pas de message d'erreur je ne sais pas ce que je dois modifier.

Merci d'avance pour vos réponses.