probleme de requete sql

sphinx_lyes
Invité n'ayant pas de compte PHPfrance

18 oct. 2010, 13:03

salut tout le monde, et merci pour tous les réponses portés sur ce forum
j'ai créer une petite application de paie, et en voulant ajouter un module j'ai rencontré un ptt problème, le suivant:

j'ai un base de donnée nommée "paie" qui comporte plusieurs champs dont "n_ss, n_employeur, annee, mois"
c'est ce qui m'intéresse pour l'instant.
je voudrais sélectionner tous les champs de la table paie quand le n_employeur = '$n_employeur' et annee = '$annee' et mois = '09' ($n_employeur et $annee sont des variables envoyées en GET par une autre page) et le '09' c'est le mois de septembre et ma requete et la suivante:
<?php


include ("config.php");
$req = mysql_query ("SELECT DISTINCT (mois) as mois, n_ss as n_ss FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND annee = '$annee'");


while ($tab = mysql_fetch_array ($req))
{
$mois 		= $tab['mois'];
$n_ss		= $tab['n_ss'];


// Requete SQL qui selectionne le nom et prenom de la table assure quand le n_employeur = $n_employeur déclaré a partir de la table employeur
$query = mysql_query ("SELECT * FROM assure
						WHERE n_ss = '$n_ss' AND n_employeur = '$n_employeur'");

$table 				= mysql_fetch_array ($query);
$nom 				= $table['nom'];
$prenom 			= $table['prenom'];
$date_naissance		= $table['date_naissance'];


$affil = mysql_query ("SELECT * FROM affiliation
						WHERE n_assure = '$n_ss' AND n_employeur = '$n_employeur'");

$tableu 		= mysql_fetch_array ($affil);
$fonction 		= $tableu['fonction'];
$du		 		= $tableu['du'];
$au		 		= $tableu['au'];

//01
// Requete SQL qui selectionne tous les champs de la table paie quand le n_employeur = $n_employeur
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '01'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_01		= $tab1e['nombre_j'];
$total_sp_01	= number ($tab1e['salaire_poste']);

//02
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '02'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_02		= $tab1e['nombre_j'];
$total_sp_02	= number ($tab1e['salaire_poste']);

//03
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '03'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_03		= $tab1e['nombre_j'];
$total_sp_03	= number ($tab1e['salaire_poste']);

//04
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '04'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_04		= $tab1e['nombre_j'];
$total_sp_04	= number ($tab1e['salaire_poste']);

//05
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '05'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_05		= $tab1e['nombre_j'];
$total_sp_05	= number ($tab1e['salaire_poste']);

//06
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '06'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_06		= $tab1e['nombre_j'];
$total_sp_06	= number ($tab1e['salaire_poste']);

//07
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '07'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_07		= $tab1e['nombre_j'];
$total_sp_07	= number ($tab1e['salaire_poste']);

//08
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '08'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_08		= $tab1e['nombre_j'];
$total_sp_08	= number ($tab1e['salaire_poste']);

//09
$affiche = mysql_query ("SELECT * FROM paie 
						WHERE n_employeur = '$n_employeur' 
						AND n_ss = '$n_ss' AND annee = '$annee' AND mois = '09'");

// Création d'un tableau dynamique. 
while ($tab1e = mysql_fetch_array ($affiche))
{
$total_j_09		= $tab1e['nombre_j'];
$total_sp_09	= number ($tab1e['salaire_poste']);
  }}}}}}}}}}

?>
et j'affiche tous ça dans un tableau dynamique, mais le problème c'est que le mois de septembre ne comprote pas de donnée (on à pas encore saisie les paies du mois de septembre) alors mon tableau n'affiche rien, mais si j'enlève la dernière requête du mois de septembre '09' il m'affiche les données.
comment puis-je y remédier.
je compte sur vous.
Modifié en dernier par Ryle le 18 oct. 2010, 21:46, modifié 1 fois.
Raison : Merci d'utiliser les balises [php]

ViPHP
xTG
ViPHP | 7331 Messages

18 oct. 2010, 13:07

Quel est ton code d'affichage ?
Car c'est là que dois se trouver le problème.

devlop78
Invité n'ayant pas de compte PHPfrance

18 oct. 2010, 13:23

je voudrais sélectionner tous les champs de la table paie quand le n_employeur = '$n_employeur' et annee = '$annee' et mois = '09' ($n_employeur et $annee sont des variables envoyées en GET par une autre page) et le '09' c'est le mois de septembre et ma requete et la suivante:
Si tu veux juste récupérer un mois, pourquoi tous ces while ?????? Et une jointure interne, non ... ? Là ça me paraît super lourd ... à défaut, une requête préparée serait plus optimisée, ça éviterait à MySql de recompiler à chaque fois ...