Je cherche une requête en php depuis 3 jours

Fermé
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 - 2 janv. 2008 à 19:26
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 - 10 janv. 2008 à 17:55
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
?>
A voir également:

6 réponses

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
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 5
2 janv. 2008 à 20:47
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
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
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 5
2 janv. 2008 à 20:57
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

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

Posez votre question
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 5
2 janv. 2008 à 21:06
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
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
micka30 Messages postés 102 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 4 juin 2008 5
10 janv. 2008 à 17:55
bonjour alain42,

la derniere fois tu ma aidé maintenant ca marche tres bien!

j'ai un new souccis pour mon site, si tu pourrait passer voir ca serait sympas!

merci par avance

http://www.commentcamarche.net/forum/affich 4603917 script php impossible de lire mes message#0
0