Pb recup année sur base sql

Résolu
Signaler
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008
-
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008
-
Bonjour,

Je suis débutant ...et je cherche à récupérer dans ma base tout ce qu'il y a dans l'année choisie avec une liste déroulante.
Merci de votre aide.
stef

13 réponses

Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
<?php
if(isset($_POST['btChercher']) && $_POST['btChercher'] = = "Chercher") // si le bouton "Chercher" a été pressé.
{
      $dateDeb = mktime(0, 0, 0, 1, 1, $_POST['annee']); // Timestamp 1er Janvier de l'année selectionnée
      $dateFin = mktime(0, 0, 0, 12, 31, $_POST['annee']); // Timestamp 31 Décembre année selectionnée

      mysql_connect("localhost", "root", ""); // Connexion a la bdd
      mysql_select_db("toto"); // Selection de la base

      $Qr = "SELECT * FROM naissance WHERE UNIX_TIMESTAMP(idate) >= ".$dateDeb." AND UNIX_TIMESTAMP(idate) <= ".$dateFin;
      $Rs = mysql_query($Qr) or die();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Etat-civil</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>

   
  Etat civil
 

<form action ="naissance.php" method="post">
<label>Année : </label>
  <select name="annee">
    <option value="2006"<?php if(isset($_POST['annee']) && $_POST['annee'] == "2006"){ echo "selected="selected"; } ?>>2006</option>
    <option value="2007"<?php if(isset($_POST['annee']) && $_POST['annee'] == "2007"){ echo "selected="selected"; } ?>>2007</option>
    <option value="2008"<?php if(isset($_POST['annee']) && $_POST['annee'] == "2008"){ echo "selected="selected"; } ?>>2008</option>
  </select>

</form>

<hr>
<?php
       if(isset($_POST['btChercher']) && $_POST['btChercher'] == "Chercher") // si le bouton "Chercher" a été pressé.
      {
            if(mysql_num_rows($Rs) > 0)
            {
                     while($resultat = mysql_fetch_assoc($Rs))
                     {
                           echo $resultat['prenom']."
";
                     }
             }
      }
?>
 
   
</html>
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Merci ça marche maintenant j'ai du remplacer { echo "selected="selected"; }
par { echo 'selected="selected"';}et tout est rentrer dans l'ordre.
Merci pour tout, stef
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
salut

tu peux me donner un peux plus de details stp ? genre ce qu'il y a dans ta base et comment elle se compose.
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Détail de la base sql :
-- Base de données: `toto`

CREATE TABLE `naissance` (
  `id` mediumint(9) NOT NULL auto_increment,
  `prenom` text NOT NULL,
  `sexe` text NOT NULL,
  `idate` date NOT NULL,
  `pere` text NOT NULL,
  `mere` text NOT NULL,
  `adresse` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
ok

alors la solution la plus simple (d'apres moi) est de convertir tes dates en timestamp.

il te faut egalement un bouton pour valider le formulaire :

et enfin il te faut le code permettant d'executer la requete sur la table :
if(isset($_POST['btChercher']) && $_POST['btChercher'] == "Chercher") // si le bouton "Chercher" a été pressé.
{
      $dateDeb = mktime(0, 0, 0, 1, 1, $_POST['annee']); // Timestamp 1er Janvier de l'année selectionnée
      $dateFin = mktime(0, 0, 0, 12, 31, $_POST['annee']); // Timestamp 31 Décembre année semectionnée

      mysql_connect($host, $user, $pass); // Connexion a la bdd
      mysql_select_db("toto"); // Selection de la base

      $Qr = "SELECT * FROM naissance WHERE UNIX_TIMESTAMP(idate) >= ".$dateDeb." AND UNIX_TIMESTAMP(idate) <= ".$dateFin;
      $Rs = mysql_query($Qr);
}

affichage des données :
while($resultat = mysql_fetch_assoc($Rs))
{
      echo $resultat['prenom']."
";
}
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Merci beaucoup pour l'aide, mais il me renvoie toujours une erreur
<title>Etat-civil</title>"mysql_fetch_assoc(): supplied argument is not a valid MySQL " je doit avoir fait une erreur quelque part. je t'envoie le code entier php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Etat-civil</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>

   
  Etat civil
 

<form action ="naissance.php" method="post">
<label>Année : </label>
  <select name="annee">
    <option value="2006">2006</option>
    <option value="2007">2007</option>
    <option value="2008">2008</option>
  </select>

</form>

<hr>

<?php
if(isset($_POST['btChercher']) && $_POST['btChercher'] == "Chercher") // si le bouton "Chercher" a été pressé.
{
      $dateDeb = mktime(0, 0, 0, 1, 1, $_POST['annee']); // Timestamp 1er Janvier de l'année selectionnée
      $dateFin = mktime(0, 0, 0, 12, 31, $_POST['annee']); // Timestamp 31 Décembre année selectionnée

      mysql_connect("localhost", "root", ""); // Connexion a la bdd
      mysql_select_db("toto"); // Selection de la base

      $Qr = "SELECT * FROM naissance WHERE UNIX_TIMESTAMP(idate) >= ".$dateDeb." AND UNIX_TIMESTAMP(idate) <= ".$dateFin;
      $Rs = mysql_query($Qr);
}

while($resultat = mysql_fetch_assoc($Rs))

{
      echo $resultat['prenom']."
";
}
?>
 
   
</html>

Merci encore theGorgo
stef
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
remplace $Rs = mysql_query($Qr);
par $Rs = mysql_query($Qr) or die(mysql_error());
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Merci mais toujours la même erreur de renvoyer.
Est ce qu'il n y aurait pas un pb dans le format de la date ? puisque idate est ex:"2007-03-09" et annee "2007"
stef
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
pardon c juste kil faut faire un test l'erreur kil te renvoie c'est parce que la variable $resultat n'est pas in itialisée. Elle s'initialise que quand tu click sur le bouton.

if(isset($_POST['btChercher']) && $_POST['btChercher'] == "Chercher") // si le bouton "Chercher" a été pressé.
{
      while($resultat = mysql_fetch_assoc($Rs))
      {
            echo $resultat['prenom']."
";
      }
}

et pour ta question la reponse est non, UNIX_TIMESTAMP est une fonction mysql qui transforme une date au format AAAA-MM-JJ en timestamp unix (nombre de secondes depuis le 1er janvier 1970) pareil pour la fonction mktime().
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

merci, je crois que je suis trop nul j'ai beau clické toujours pareil
je cherche...
Messages postés
224
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
8 septembre 2014
1
lol je viens de voir l'erreur

<form action="naissance.php" method="post">
<label>Année : </label>
  <select name="annee">
    <option value="2006">2006</option>
    <option value="2007">2007</option>
    <option value="2008">2008</option>
  </select>

</form>

<hr>

il faut ke le bouton submit soit dans le formulaire

<form action="naissance.php" method="post">
<label>Année : </label>
  <select name="annee">
    <option value="2006">2006</option>
    <option value="2007">2007</option>
    <option value="2008">2008</option>
  </select>

</form>

<hr>
là je pense que c'est bon
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Merci beaucoup theGorgo ça marche maintenant.
C'est super, je te remercie beaucoup d'avoir été aussi réactif et bravo pour ce site. J'ai encore du boulot...bye
stef
Messages postés
8
Date d'inscription
lundi 5 décembre 2011
Statut
Membre
Dernière intervention
19 septembre 2008

Excuse-moi encore un petit truc est ce qu'il y aurait une solution pour qu'il ne me renvoie pas d'erreur à la première ouverture et garder l'année affichée sur la liste déroulante.
Merci, stef