Pb recup année sur base sql

Résolu
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008 - 16 sept. 2008 à 08:50
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008 - 19 sept. 2008 à 09:28
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

Utilisateur anonyme
16 sept. 2008 à 15:56
<?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>
3
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
19 sept. 2008 à 09:28
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
3
Utilisateur anonyme
16 sept. 2008 à 09:34
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.
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 09:56
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 ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
16 sept. 2008 à 10:54
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']."
";
}
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 11:29
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
0
Utilisateur anonyme
16 sept. 2008 à 12:46
remplace $Rs = mysql_query($Qr);
par $Rs = mysql_query($Qr) or die(mysql_error());
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 13:11
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
0
Utilisateur anonyme
16 sept. 2008 à 13:21
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().
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 13:51
merci, je crois que je suis trop nul j'ai beau clické toujours pareil
je cherche...
0
Utilisateur anonyme
16 sept. 2008 à 13:59
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
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 14:13
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
0
stefdu81 Messages postés 8 Date d'inscription lundi 5 décembre 2011 Statut Membre Dernière intervention 19 septembre 2008
16 sept. 2008 à 15:17
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
0
Rejoignez-nous