probleme de requete sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de requete sql

Re: probleme de requete sql

par devlop78 » 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 ...

Re: probleme de requete sql

par xTG » 18 oct. 2010, 13:07

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

probleme de requete sql

par sphinx_lyes » 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.