Probleme requete sql (php)

Résolu/Fermé
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007 - 10 déc. 2007 à 22:28
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007 - 26 déc. 2007 à 14:46
Bonjour, j'ai un petit prob je fais actuellement un script et rien ne s'affiche dans mon tableau, $SQL aurrait un probleme??
pourtant cela me parrait correcte

si qq pourrait m'aider

voila merci

<?php
include("admin_search.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="en-US" lang="en-US">
<head>
	<title>Vous identifier</title>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<style type="text/css">
table {
  border: 1px solid #ccc;
  color: #333;
  font-size: 8pt;
}

th {
  padding: 3px;
  text-align: left;
}

td {
  background-color: #eee;
  padding: 2px;
}
</style>
</head>
<body>
<?php 

// PAS BESOIN DE JOINTURE ICI! ON VA ASSOCIER LES TABLES (prend moins de ressources)

// Si on recherche dans la table conso2 (sachant que ca peut etre vide), alors la requete sql diffère un peu
if(@$_POST['situation']<>"" OR @$_POST['internet']<>"" OR @$_POST['entretiens']<>"" OR @$_POST['reunions']<>"" OR @$_POST['sante']<>"" OR @$_POST['beaute']<>"" OR @$_POST['alimentaire']<>"" OR @$_POST['revenus']<>"" OR @$_POST['enfant']<>"" OR @$_POST['membre1']<>"" OR @$_POST['membre2']<>"" OR @$_POST['membre3']<>"" OR @$_POST['membre4']<>"" OR @$_POST['membre5']<>"" OR @$_POST['profession']<>"")
{
$SQL="SELECT * FROM conso1, conso2 WHERE (conso1.id = conso2.id)";
}

// Prise en compte de la naissance
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['naissance']<>"") {
	
	// On determine les années de naissance à aller chercher dans la bdd
	// si l'année de naissance 2 est inférieur a l'année 1, ce n'est pas bien pour le between...
	if( $_POST['age2'] >= $_POST['age1'])
	{
		function age($age)  {
		  $today = date('Y');
		  $annees = $today - $age;
		  return $annees;
		  }
		// entre 1ere année  
		$annee1 = age($_POST['age1']);
		// et 2e année
		$annee2 = age($_POST['age2']);
		// On cherche entre l'année 2 et l'année 1 dans la bdd
		
		// Si on a déja une requete commencée
		if(!empty($SQL)){
		$SQL=$SQL." AND (age BETWEEN ".@$annee2." AND ".@$annee1.")";
		}
		//sinon on la commence
		else{
		$SQL="SELECT * FROM conso1, conso2 WHERE (age BETWEEN ".@$annee2." AND ".@$annee1.")";
		}
			
	}
	// il y a une incoherence donc on avertit
	else{
		echo 'Veuillez insérer un premier age inférieur au second';
	}
}


// Prise en compte du département
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['departement']<>"") {

	// si on a activé l'option région parisienne
	if(!empty($_POST['option_paris'])){
	
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (departement IN ('75','77','78','91','92','93','94','95')";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement IN ('75','77','78','91','92','93','94','95')";}

	}
	// sinon on cherche le département
	else{
	
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (departement ".@$_POST['departement1'].")";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement ".@$_POST['departement1'].")";}

	}
}

// Prise en compte du sexe
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['sexe']<>"") {
	
	if(@$_POST['sexe']<>"homme")
		{
		
		
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (titre = 'Mr')";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre = 'Mr')";}
		}
	
	elseif(@$_POST['sexe']<>"femme")
		{
		
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (titre IN ('Mmme','Mlle'))";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre IN ('Mmme','Mlle'))";}
		
		}
	}


// Prise en compte du prénom
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['prenom']<>"") {

	// Si on a déja une requete commencée
	if(!empty($SQL)){$SQL=$SQL." AND (prenom LIKE '%".@$_POST['prenom1']."%')";}
	//sinon on la commence
	else{$SQL="SELECT * FROM conso1, conso2 WHERE (prenom LIKE '%".@$_POST['prenom1']."%')";}

}


// Prise en compte du nom
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['nom']<>"") {

	// Si on a déja une requete commencée
	if(!empty($SQL)){$SQL=$SQL." AND (nom LIKE '%".@$_POST['nom1']."%')";}
	//sinon on la commence
	else{$SQL="SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')";}

}

// Fin des criteres de conso1
//Début criteres qui € à conso2

// La requete $SQL a forcement été préparée en haut, donc on ne fait qu'ajouter des critères

// Prise en compte de la situation familiale
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['situation']<>"") {$SQL=$SQL."AND (situation = ".@$_POST['situation1'].")";}

// Prise en compte des réponses positives au questionnaire sur internet
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['internet']<>"") {$SQL=$SQL."AND (questionnaire_ligne = 'oui')";}

// Prise en compte des réponses positives aux entretiens
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['entretiens']<>"") {$SQL=$SQL."AND (entretiens = 'oui')";}

// Prise en compte des réponses positives aux reunions
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['reunions']<>"") {$SQL=$SQL."AND (reunions = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['sante']<>"") {$SQL=$SQL."AND (sante = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['beaute']<>"") {$SQL=$SQL."AND (beaute = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (@$_POST['alimentaire']<>"") {$SQL=$SQL."AND (alimentaire = 'oui')";}

//Prise en compte du revenu ménage
if (@$_POST['revenus']<>"") {$SQL=$SQL."AND (revenus_menage = ".@$_POST['revenus1'].")";}

//Prise en compte des enfants
if (@$_POST['enfant']<>"") {$SQL=$SQL."AND (enfants >= 1)";}

//Prise en compte des enfants entre 0 à 5 ans
if (@$_POST['membre1']<>"") {$SQL=$SQL."AND (membre1 >= 1)";}

//Prise en compte des enfants entre 6 à 10 ans
if (@$_POST['membre2']<>"") {$SQL=$SQL."AND (membre2 >= 1)";}

//Prise en compte des enfants entre 11 à 13 ans
if (@$_POST['membre3']<>"") {$SQL=$SQL."AND (membre3 >= 1)";}

//Prise en compte des enfants entre 14 à 17 ans
if (@$_POST['membre4']<>"") {$SQL=$SQL."AND (membre4 >= 1)";}

//Prise en compte des enfants entre 18 à 25 ans
if (@$_POST['membre5']<>"") {$SQL=$SQL."AND (membre5 >= 1)";}

//Prise en compte de la profession
if (@$_POST['profession']<>"") {$SQL=$SQL." AND (profession LIKE '%".@$_POST['profession1']."%')";}


// Ou l'utilisateur a posté et la requete a été créé ci-dessus, ou l'utilisateur a clické sur order by...
if(!empty($SQL) OR !empty($_GET['sql'])){
	?> 
	
	<table>
	<tr>
	<th><a href="resultat.php?order=titre&amp;sql=$SQL">Titre</a></th>
	<th><a href="resultat.php?order=nom&amp;sql=$SQL">Nom</a></th>
	<th><a href="resultat.php?order=prenom&amp;sql=$SQL">Prenom</a></th>
	<th><a href="resultat.php?order=naissance&amp;sql=$SQL">Age</a></th>
    <th><a href="resultat.php?order=postal&amp;sql=$SQL">Code Postal</a></th>
    <th><a href="resultat.php?order=situation&amp;sql=$SQL">Situation</a></th>
    <th><a href="resultat.php?order=scolaire&amp;sql=$SQL">Niveau Scolaire</a></th>
    <th><a href="resultat.php?order=revenus_menage&amp;sql=$SQL">Revenus du m&eacute;nage</a></th>
    <th><a href="resultat.php?order=revenus_perso&amp;sql=$SQL">Revenus perso</a></th>
    <th><a href="resultat.php?order=profession&amp;sql=$SQL">Profession</a></th>
    <th><a href="resultat.php?order=enfants&amp;sql=$SQL">Nombre d'enfants</a></th>
    <th><a href="resultat.php?order=membre1&amp;sql=$SQL">Enfants de 0 &agrave; 5 ans</a></th>
    <th><a href="resultat.php?order=membre2&amp;sql=$SQL">Enfants de 6 &agrave; 10 ans</a></th>
    <th><a href="resultat.php?order=membre3&amp;sql=$SQL">Enfants de 11 &agrave; 13 ans</a></th>
    <th><a href="resultat.php?order=membre4&amp;sql=$SQL">Enfants de 14 &agrave; 17 ans</a></th>
    <th><a href="resultat.php?order=membre5&amp;sql=$SQL">Enfants de 18 &agrave; 25 ans</a></th>
    <th><a href="resultat.php?order=membre6&amp;sql=$SQL">Enfants de 25 et + </a></th>
    <th><a href="resultat.php?order=autre&amp;sql=$SQL">Autre sujet de r&eacute;unions interess&eacute;</a></th>
	</tr>
	<?php
    //cas ou l'utilisateur à clické
	//Variable pour classer (ORDER BY) 
	if(!empty($_GET['order']) AND !empty($_GET['sql']))
		{
		// Alors on créé la variable SQL
		$SQL = $_GET['sql']." ORDER BY ".@$_GET['order']." DESC";
		}
	
	// Si l'utilisateur n'a pas clické alors il a forcement du poster, donc on continue vu que $SQL existe déjà
	
	// Connexion à la base de donnée
	mysql_connect('sql.free.fr', "3615bdp", "worldmar");
	mysql_select_db("3615bdp");
	
	// requete selon les criteres rentrés dans formulaires
	$resultat = mysql_query($SQL);
	
	// on calcul le nombre de personnes à afficher
	$nb = mysql_num_rows($resultat);
	
	// si on ne trouve personne	 
	if( !$nb[0] ) {
		echo 'Aucun consommateurs trouvés';
	} 
	
	// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
	else {
		while($tab = mysql_fetch_array($resultat))
		{
			//coloration d'une ligne sur deux
			$couleur = ($compteur % 2 == 0) ? '#50b4d3' : '#FFFFFF';
		  	$today = date('Y');
		  	$age = $today - $tab['naissance'];
			// id pour la fiche membre
			$id = $tab['id'];
			  echo'<tr>
			  	<td bgcolor="'.$couleur.'">',$tab['titre'],'</td>
				<td bgcolor="'.$couleur.'"><a href="profil.php?id=$id">',$tab['prenom'],'</a></td>
				<td bgcolor="'.$couleur.'">',$tab['nom'],'</td>
				<td bgcolor="'.$couleur.'">',$age,'</td>
				<td bgcolor="'.$couleur.'">',$tab['postal'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['situation'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['scolaire'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['revenus_menage'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['revenus_perso'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['profession'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['enfants'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre1'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre2'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre3'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre4'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre5'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['membre6'],'</td>
				<td bgcolor="'.$couleur.'">',$tab['autre'],'</td>
				
			  </tr>';
			$compteur++;	  
		}
	?>
	</table>
	<?php 
	}}
	?>
A voir également:

7 réponses

Bonsoir,

Beaucoup de choses bizares dans ton code:

<?php
include("admin_search.php");
?>

ces 3 lignes ne doivent pas etre au debut du script
<!DOCTYPE doit etre au debut, alors mets les plus bas dans le <body

ensuite pourquoi les @ devant les $_POST ? j'ai jamais vu ça

le comparateur different de n'est pas comme ça: if (@$_POST['departement']<>"")
mais
if (@$_POST['departement']!="")


ensuite:
$nb = mysql_num_rows($resultat);

// si on ne trouve personne
if( !$nb[0] )


mets plutot:
if($nb==0)


ensuite tu mets dans ta boucle while: $compteur++;

je n'ai pas vu ou tu initialise cette variable $compteur=0;

ensuite:
if( !$nb[0] ) {
echo 'Aucun consommateurs trouvés';
}

// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
else {


evites de mettre des lignes de commentaires entre } et else


if( !$nb[0] ) {
		echo 'Aucun consommateurs trouvés';
	} else {	
	// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
	



Coriges tout ça.

@lain
0
<?php
include("admin_search.php");
?>
ces 3 lignes ne doivent pas etre au debut du script
<!DOCTYPE doit etre au debut, alors mets les plus bas dans le <body


<!DOCTYPE etc.. sera bien au début du fichier envoyé au client. Il n'y a aucun problème ni aucune raison de descendre les 3 lignes de php plus bas dans le code, si admin_search .php ne génère pas de sortie
0
Il n'y a aucun problème ni aucune raison de descendre les 3 lignes de php plus bas dans le code, si admin_search .php ne génère pas de sortie

et si plus tard on le modifie et qu'il génère une sortie ??

alors tant qu'à faire il vaut mieux faire un code normal
0
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007
15 déc. 2007 à 16:42
c'est bon j'ai corrigé merci beaucoup de l'aide
0
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007
15 déc. 2007 à 17:35
Au fait petite erreur de ma part pour les prochains c'est

mysql_num_rows

et pas mysql_fetch_row

donc ca nous donne:

$nb = mysql_num_rows($resultat);
	if($nb == 0)
		{
		echo 'Aucun consommateurs trouvés';
		}
	else { while(....
0

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

Posez votre question
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007
16 déc. 2007 à 18:31
Rebonjour, j'ai de nouveau une erreur, en fait cette fois, on m'affiche 2 fois la meme entrée dans le tableau, donc à la place d'en avoir 6 par exemple, j'en ai 12 :/
voila si quelqu'un pourrait m'aider:

<?php
session_start();
?>
<!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="en-US" lang="en-US">
<head>
	<title>R&eacute;sultat de la recherche</title>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<script src="sorttable.js"></script>
	<style type="text/css">
    table.sortable thead {
        background-color:#1c529d ;
        color:#FFFFFF;
        font-weight: bold;
        cursor: default;
    }
	a {
		color:#1c529d;
	}
    </style>
</head>
<body>
<?php 
include("admin_search.php");
$SQL ='';
// PAS BESOIN DE JOINTURE ICI! ON VA ASSOCIER LES TABLES (prend moins de ressources)

// Si on recherche dans la table conso2 (sachant que ca peut etre vide), alors la requete sql diffère un peu
if(!empty($_POST['situation']) OR !empty($_POST['internet']) OR !empty($_POST['entretiens']) OR !empty($_POST['reunions']) OR !empty($_POST['sante']) OR !empty($_POST['beaute']) OR !empty($_POST['alimentaire']) OR !empty($_POST['revenus']) OR !empty($_POST['enfant']) OR !empty($_POST['membre1']) OR !empty($_POST['membre2']) OR !empty($_POST['membre3']) OR !empty($_POST['membre4']) OR !empty($_POST['membre5']) OR !empty($_POST['profession']))
{
$SQL="SELECT * FROM conso1, conso2 WHERE (conso1.id = conso2.id)";
// variable pour dire que les utilisateurs selectionnés ont remplient inscription2.php
$conso2 = true;
}


// Prise en compte de la naissance
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['age'])) {
	
	// On determine les années de naissance à aller chercher dans la bdd
	// si l'année de naissance 2 est inférieur a l'année 1, ce n'est pas bien pour le between...
	if( $_POST['age2'] >= $_POST['age1'])
	{
		function age($age)  {
		  $today = date('Y');
		  $annees = $today - $age;
		  return $annees;
		  }
		// entre 1ere année  
		$annee1 = age($_POST['age1']);
		// et 2e année
		$annee2 = age($_POST['age2']);
		// On cherche entre l'année 2 et l'année 1 dans la bdd
		
		// Si on a déja une requete commencée
		if(!empty($SQL)){
		$SQL=$SQL." AND (naissance BETWEEN ".@$annee2." AND ".@$annee1.")";
		}
		//sinon on la commence
		else{
		$SQL="SELECT * FROM conso1, conso2 WHERE (naissance BETWEEN ".@$annee2." AND ".@$annee1.")";
		}
			
	}
	// il y a une incoherence donc on avertit
	else{
		echo 'Veuillez insérer un premier age inférieur au second';
	}
}


// Prise en compte du département
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['departement'])) {

	// si on a activé l'option région parisienne
	if(!empty($_POST['option_paris'])){
	
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (departement IN ('75','77','78','91','92','93','94','95'))";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement IN ('75','77','78','91','92','93','94','95'))";}

	}
	// sinon on cherche le département
	else{
	
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (departement = '".@$_POST['departement1']."')";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement = '".@$_POST['departement1']."')";}

	}
}

// Prise en compte du sexe
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['sexe'])) {
	
	if($_POST['sexe1']=="homme")
		{
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (titre = 'Mr')";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre = 'Mr')";}
		}
	
	elseif($_POST['sexe1']=="femme")
		{
		
		// Si on a déja une requete commencée
		if(!empty($SQL)){$SQL=$SQL." AND (titre = 'Mme' OR titre = 'Mlle')";}
		//sinon on la commence
		else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre = 'Mme' OR titre = 'Mlle')";}
		
		}
	}


// Prise en compte du prénom
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['prenom'])) {

	// Si on a déja une requete commencée
	if(!empty($SQL)){$SQL=$SQL." AND (prenom LIKE '%".@$_POST['prenom1']."%')";}
	//sinon on la commence
	else{$SQL="SELECT * FROM conso1, conso2 WHERE (prenom LIKE '%".@$_POST['prenom1']."%')";}

}

// Prise en compte du nom
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['nom'])) {

	// Si on a déja une requete commencée
	if(!empty($SQL)){$SQL=$SQL." AND (nom LIKE '%".@$_POST['nom1']."%')";}
	//sinon on la commence
	else{$SQL="SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')";}

}

// Fin des criteres de conso1
//Début criteres qui € à conso2

// La requete $SQL a forcement été préparée en haut, donc on ne fait qu'ajouter des critères

// Prise en compte de la situation familiale
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['situation'])) {$SQL=$SQL." AND (situation = '".@$_POST['situation1']."')";}

// Prise en compte des réponses positives au questionnaire sur internet
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['internet'])) {$SQL=$SQL." AND (questionnaire_ligne = 'oui')";}

// Prise en compte des réponses positives aux entretiens
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['entretiens'])) {$SQL=$SQL." AND (entretiens = 'oui')";}

// Prise en compte des réponses positives aux reunions
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['reunions'])) {$SQL=$SQL." AND (reunions = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['sante'])) {$SQL=$SQL." AND (sante = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['beaute'])) {$SQL=$SQL." AND (beaute = 'oui')";}

// Prise en compte des réponses positives au sujet sur la sante
// S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition
if (!empty($_POST['alimentaire'])) {$SQL=$SQL." AND (alimentaire = 'oui')";}

//Prise en compte du revenu ménage
if (!empty($_POST['revenus'])) {$SQL=$SQL." AND (revenus_menage = '".@$_POST['revenus1']."')";}

//Prise en compte des enfants
if (!empty($_POST['enfant'])) {$SQL=$SQL." AND (enfants >= 1)";}

//Prise en compte des enfants entre 0 à 5 ans
if (!empty($_POST['membre1'])) {$SQL=$SQL." AND (membre1 >= 1)";}

//Prise en compte des enfants entre 6 à 10 ans
if (!empty($_POST['membre2'])) {$SQL=$SQL." AND (membre2 >= 1)";}

//Prise en compte des enfants entre 11 à 13 ans
if (!empty($_POST['membre3'])) {$SQL=$SQL." AND (membre3 >= 1)";}

//Prise en compte des enfants entre 14 à 17 ans
if (!empty($_POST['membre4'])) {$SQL=$SQL." AND (membre4 >= 1)";}

//Prise en compte des enfants entre 18 à 25 ans
if (!empty($_POST['membre5'])) {$SQL=$SQL." AND (membre5 >= 1)";}

//Prise en compte de la profession
if (!empty($_POST['profession'])) {$SQL=$SQL." AND (profession LIKE '%".@$_POST['profession1']."%')";}


// Ou l'utilisateur a posté et la requete a été créé ci-dessus, ou l'utilisateur a clické sur order by...
if(!empty($SQL)){

    
	// Si l'utilisateur n'a pas clické alors il a forcement du poster, donc on continue vu que $SQL existe déjà
	// Connexion à la base de donnée
	mysql_connect('sql.free.fr', "3615bdp", "worldmar");
	mysql_select_db("3615bdp");
	
	// requete selon les criteres rentrés dans formulaires
	$resultat = mysql_query($SQL) or die(mysql_error());
	$nb = mysql_num_rows($resultat);
	// si on ne trouve personne
	if($nb == 0)
		{
		echo 'Aucun consommateurs trouvés';
		}
	// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
	else {
	
		if ($nb == 1){echo '1 consommateur trouvé';}
		else{echo $nb,' consommateurs trouvés';}
		
		?>
		<table class="sortable">
		<tr>
		<th>Titre</th>
		<th>Prenom</th>
		<th>Nom</th>
		<th>Age</th>
        <th>Ville</th>
		<th>Code Postal</th>
        <th>Telephone</th>
        <th>Portable</th>
        <th>Email</th>
        <?php
        if($conso2)
			{
			?> 
			<th>Situation</th>
			<th>Niveau Scolaire</th>
			<th>Revenus du m&eacute;nage</th>
			<th>Revenus perso</th>
			<th>Profession</th>
			<th>Nombre d'enfants</a></th>
			<th>Enfants de 0 &agrave; 5 ans</th>
			<th>Enfants de 6 &agrave; 10 ans</th>
			<th>Enfants de 11 &agrave; 13 ans</th>
			<th>Enfants de 14 &agrave; 17 ans</th>
			<th>Enfants de 18 &agrave; 25 ans</th>
			<th>Enfants de 25 et + </th>
			<th>Autre sujet de r&eacute;unions interess&eacute;</th>
			</tr>
			<?php
			}
		$compteur=0;
		while($tab = mysql_fetch_array($resultat))
			{
			//coloration d'une ligne sur deux
			$couleur = ($compteur % 2 == 0) ? '#eee' : '#FFFFFF';
			$today = date('Y');
			$age = $today - $tab['naissance'];
			// id pour la fiche membre
			$id = $tab['id'];
					
					echo'<tr bgcolor="'.$couleur.'">
					<td>',$tab['titre'],'</td>
					<td><a href="profil.php?id=$id">',$tab['prenom'],'</a></td>
					<td>',$tab['nom'],'</td>
					<td>',$age,'</td>
					<td>',$tab['ville'],'</td>
					<td>',$tab['postal'],'</td>
					<td>',$tab['telephone'],'</td>
					<td>',$tab['portable'],'</td>
					<td>',$tab['email'],'</td>';
					if($conso2)
						{		
						echo'
						<td>',$tab['situation'],'</td>
						<td>',$tab['scolaire'],'</td>
						<td>',$tab['revenus_menage'],'</td>
						<td>',$tab['revenus_perso'],'</td>
						<td>',$tab['profession'],'</td>
						<td>',$tab['enfants'],'</td>
						<td>',$tab['membre1'],'</td>
						<td>',$tab['membre2'],'</td>
						<td>',$tab['membre3'],'</td>
						<td>',$tab['membre4'],'</td>
						<td>',$tab['membre5'],'</td>
						<td>',$tab['membre6'],'</td>
						<td>',$tab['autre'],'</td>';
						}
				  echo '</tr>';
			$compteur++;	  
			}
			
			
		//lien pour envoyer mail massif + sa variable session pour choisir les consos
		mysql_close();
		
		?><a href="mail.php">Envoyer un e-mail &agrave; ce(s) consommateur(s)</a>
		</table>
        
		<?php 
		$_SESSION['sqlmail'] = $SQL;
		}
	}
	?>
	</body></html>
0
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007
19 déc. 2007 à 14:54
up!
0
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007
26 déc. 2007 à 14:46
en fait pb résolu

il faut mettre:

SELECT * FROM conso1 (nom LIKE '%".@$_POST['nom1']."%')"

et non SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')"

et ce à plusieurs reprises (apres c'est qu'une question de logique)


Merci beaucoup, bonne vaccances
0