Je cherche une requête en php depuis 3 jours

micka30 Messages postés 102 Statut Membre -  
micka30 Messages postés 102 Statut Membre -
Bonjour,
je cherche une requête depuis 3 jours , je ne sais pas comment faire!

j'explique:

dans ma bdd ,j'ai les dates de naissances de mes membre sous forme aaaa-mm-jj.
j'ai une page,qui permet aux membres de mon site ,de rechercher d'autre membre de mon site avec comme critére L'age , le departemement , et le sexe!

ma requéte serait simple si ma recherche s'effecturé par date de naissances or elle s'effectue par age!

ex:( selectionne les membre qui on entre X age et Y age du departememt W)

le probleme c'est que je n'arrive pas a convertire les date de naissances qui sont dans ma bdd en age, tout en fessant ma requête qui afficherai les membre qui sont dans ma bdd qui on entre X age et Y age dans le departement W

bon je vous montre 1 script que j'ai fait mais il ya des erreur et je pensse aussi qu'il ne faut pas faire comme ca!

si quelqu'un pourrait me montrer ca serait vraiment gentil!

Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\tests\premierpage.php on line 434

Code : PHP - Afficher / masquer les numéros de ligne<?php
if (isset ($_POST['re_sexe']) && isset ($_POST['age_minimum']) && isset ($_POST['age_maximum'])&& isset ($_POST['departement']))
// Si les variables existent
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("sitemicka");

$sexe = $_POST['re_sexe'];
$age_mini = $_POST['age_minimum'];
$age_maxi = $_POST['age_maximum'];
$dep = $_POST['departement'];

$reponse2 = mysql_query("SELECT id, photo2, date_de_naissance, departemement, sexe FROM infoclients");

while ($donnees2 = mysql_fetch_array($reponse2) )
{

$date_naissance = $donnees2['date_de_naissance'];

$date_naissance1 = mktime(0,0,0,$date_naissance);
// on prend le timestamp
$timestamp = time();
//on calcule
$age = floor(($timestamp-$date_naissance1)/3600/24/365.5);

if ($age <= $age_maxi AND $age>= $age_mini AND $dep == $donnees2['departement'] AND $sexe == $donnees2['sexe'])

{

echo '<tr><td><a href=fichemembre.php?id='.$donnees1['id'].'><img src="images/'.$donnees1['photo2'].'" alt="image" /></a></td></tr>';
}
}
}
mysql_close(); // Déconnexion de MySQL
?>
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. alain42
     
    Bonsoir,

    essayes comme ça, je n'ai pas testé, alors attention aux fautes de frappe ou parenthèses oubliées.
    C'est le principe surtout.

    J'ai décomposé au maximum

    <?php
    if (isset ($_POST['re_sexe']) && isset ($_POST['age_minimum']) && isset ($_POST['age_maximum'])&& isset ($_POST['departement']))
    // Si les variables existent  attention qu'elles existent ne veut pas dire qu'elles ne soient pas vides
    {
    
    	$sexe = $_POST['re_sexe'];
    	$age_mini = $_POST['age_minimum'];
    	$age_maxi = $_POST['age_maximum'];
    	$dep = $_POST['departement'];
    	$annee_today=date("Y");
    	$suite_date_today=date("m-d");
    	$annee_naissance_age_mini=$annee_today - $age_mini;
    	$annee_naissance_age_maxi=$annee_today - $age_maxi;
    	$date_naissance_haute=$annee_naissance_age_mini."-".$suite_date_today;
    	$date_naissance_basse=$annee_naissance_age_maxi."-".$suite_date_today;
    	//  on se connecte à MySQL
    	mysql_connect("localhost", "root", "");
    	mysql_select_db("sitemicka");
    
    	$reponse2 = mysql_query("SELECT id, photo2, date_de_naissance, departemement, sexe FROM infoclients WHERE sexe='".$sexe."' AND departemement='".$dep."' AND date_de_naissance < '".$date_naissance_haute."' AND date_de_naissance > '".$date_naissance_basse."' ");
    	while ($donnees2 = mysql_fetch_array($reponse2) )
    	{
    		echo '<tr><td><a href=fichemembre.php?id='.$donnees2['id'].'><img src="images/'.$donnees2['photo2'].'" alt="image" /></a></td></tr>';
    	}
    }
    mysql_close(); // Déconnexion de MySQL
    ?>
    
    
    0
  2. micka30 Messages postés 102 Statut Membre 5
     
    merci beaucoup de ta reponse!

    il ma inscrit une erreur!

    Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\tests\premierpage.php on line 419

    donc j'ai coriger, j'ai remonter le mysql_close(); avant la derniere acollade!

    et maintenant j'ai une autre erreur que je comprend pas!

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\premierpage.php on line 413

    a l echo :

    {
    echo '<tr><td><a href=fichemembre.php?id='.$donnees2['id'].'><img src="images/'.$donnees2['photo2'].'" alt="image" /></a></td></tr>';
    }

    <?php
    if (isset ($_POST['re_sexe']) && isset ($_POST['age_minimum']) && isset ($_POST['age_maximum'])&& isset ($_POST['departement']))
    // Si les variables existent attention qu'elles existent ne veut pas dire qu'elles ne soient pas vides
    {

    $sexe = $_POST['re_sexe'];
    $age_mini = $_POST['age_minimum'];
    $age_maxi = $_POST['age_maximum'];
    $dep = $_POST['departement'];
    $annee_today=date("Y");
    $suite_date_today=date("m-d");
    $annee_naissance_age_mini=$annee_today - $age_mini;
    $annee_naissance_age_maxi=$annee_today - $age_maxi;
    $date_naissance_haute=$annee_naissance_age_mini."-".$suite_date_today;
    $date_naissance_basse=$annee_naissance_age_maxi."-".$suite_date_today;
    // on se connecte à MySQL
    mysql_connect("localhost", "root", "");
    mysql_select_db("sitemicka");

    $reponse2 = mysql_query("SELECT id, photo2, date_de_naissance, departemement, sexe FROM infoclients WHERE sexe='".$sexe."' AND departemement='".$dep."' AND date_de_naissance < '".$date_naissance_haute."' AND date_de_naissance > '".$date_naissance_basse."' ");
    while ($donnees2 = mysql_fetch_array($reponse2) )
    {
    echo '<tr><td><a href=fichemembre.php?id='.$donnees2['id'].'><img src="images/'.$donnees2['photo2'].'" alt="image" /></a></td></tr>';
    }
    mysql_close(); // Déconnexion de MySQL
    }

    ?>
    0
  3. alain42
     
    Tu dois avoir des erreurs ailleurs, mets ces traces:

    
    <?php
    if (isset ($_POST['re_sexe']) && isset ($_POST['age_minimum']) && isset ($_POST['age_maximum'])&& isset ($_POST['departement']))
    // Si les variables existent attention qu'elles existent ne veut pas dire qu'elles ne soient pas vides
    {
    
    $sexe = $_POST['re_sexe'];
    $age_mini = $_POST['age_minimum'];
    $age_maxi = $_POST['age_maximum'];
    $dep = $_POST['departement'];
    $annee_today=date("Y");
    $suite_date_today=date("m-d");
    $annee_naissance_age_mini=$annee_today - $age_mini;
    $annee_naissance_age_maxi=$annee_today - $age_maxi;
    $date_naissance_haute=$annee_naissance_age_mini."-".$suite_date_today;
    $date_naissance_basse=$annee_naissance_age_maxi."-".$suite_date_today;
    // on se connecte à MySQL
    $cnx=mysql_connect("localhost", "root", "") or die("Pb connexion au serveur".mysql_error());
    $db=mysql_select_db("sitemicka") or die("Pb selection base".mysql_error());
    
    $reponse2 = mysql_query("SELECT id, photo2, date_de_naissance, departemement, sexe FROM infoclients WHERE sexe='".$sexe."' AND departemement='".$dep."' AND date_de_naissance < '".$date_naissance_haute."' AND date_de_naissance > '".$date_naissance_basse."' ") or die("Pb requette".mysql_error());
    while ($donnees2 = mysql_fetch_array($reponse2) )
    {
    echo '<tr><td><a href=fichemembre.php?id='.$donnees2['id'].'><img src="images/'.$donnees2['photo2'].'" alt="image" /></a></td></tr>';
    }
    mysql_close(); // Déconnexion de MySQL
    }
    ?>
    
    0
  4. micka30 Messages postés 102 Statut Membre 5
     
    merci beaucoup de ton aide car ca fait 3 jour que je me prend la tête avec ce code!!

    ca m'affiche ca!

    Pb requetteUnknown column 'departemement' in 'field list'
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. micka30 Messages postés 102 Statut Membre 5
     
    okok c'etait departement qui etait ecrit departemement!!

    merci beaucoup ca marche maintenant!

    et comment faire pour que si le membre poste pas tout !
    par ex:

    il veut choisir que par l'age sans le departement!
    0
  7. alain42
     
    Bonjour,

    la c'est un peu plus compliqué, il faut construire ta requette en testant par exemple si $sexe=="" et en rajoutant dans ce cas la condition AND sexe='$sexe'

    mais ça va se compliquer pour le calcul des dates basse et haute

    @lain
    0