Mise en forme tableau à partir de plusieurs requetes

Jey101 Messages postés 12 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 31 janvier 2006 - 10 mars 2005 à 20:46
JeanPoldeux Messages postés 64 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 août 2005 - 10 mars 2005 à 22:37
bonjour,

Je désire réaliser un tableau de synthese. Pour ce faire j'ai fait, pour ma mise en page, différentes requetes qui me permette d'afficher les 4 premiers resultats puis les 4 suivants ...
Voici une des requetes :

$AffService1=
"select * from transit where Service='8' order by Classe limit $limite2
";

$req1 = mysql_db_query(
"$sql_bdd
",
"$AffService1
",
$db_link);
while(
$aff1= mysql_fetch_array(
$req1)){
$tab1[
$j]=
$aff1[
'Nom'].
" ".
$aff1[
'Prénom'];

$cla1[
$j]=
$aff1[
'Classe'];

$j++;}
// while

Voici l'affichage :

<?for (
$a=
0;
$a<
$nb;
$a++){
?> <tr><td ><?echo
$tab1[
$a];
?></td><td >
<?echo
$cla1[
$a];
?></td><?}
?>

le probleme est que j'ai besoin de 4 requetes ou le limit change en fait, mais le service est toujours egal à 8 et 2 autres requetes ou le service =8 et le champ dp=1.

si j'utilise les limit, du coup ca ne marche plus car ma requete n'est plus la meme.

je ne sais pas comment faire car il peut ne pas y avoir d'enregistrements où dp=1
Comment faire pour les placer coorectement sans qu'ils soient 2 fois dans le tableau resultat.

Je sais pas si j'ai été assez clair.

Merci pour votre aide.

1 réponse

JeanPoldeux Messages postés 64 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 août 2005
10 mars 2005 à 22:37
D'après ce que j'ai compris, si il s'agit d'afficher
quatre résultats par page, voici une solution. Tu utilises un deuxième
argument derrière limit dans ta requête. Le premier indique le numéro
de l'enregistrement qui doit commencer le jeu(premier=0) et comme deuxième
argument le nombre d'enregistrements. Pour faire cela, il suffit de
placer ces valeurs dans un lien sur le même script et de les récupérer.


Exemple:

<?php

//Nom du script pour l'exemple : "affichage.php"

//REQUETE

$AffService="SELECT * FROM transit WHERE service=8 ORDER BY classe";

if(isset($_GET["debut"]))

{

$AffService=
$AffService.
" LIMIT ".
$_GET["debut"].",4";

$suivant=
$_GET["debut"]+4;



}

else

{


$AffService=
$AffService.
" LIMIT 0
,4";


$suivant=4;

}


$req=mysql_db_query($sql_bdd,$AffService,$db_link);



//Affichage
echo "\";

while($aff=mysql_fetch_array($req))
{

echo \"----
";

echo $aff["nom"]." ".$aff["prenom"];

echo "
, ";

echo $aff["classe"];

echo ", \";

}

echo "
";



//Lien vers la page qui comprendra les quatres records suivants

echo "
Les quatres suivants";






?>



Cependant, si ta condition de sélection change en cours d'exécution, tu
ne peux t'en sortir qu'avec plusieurs requêtes. Tu devras donc en
indiquer au minimum une autre où ton champ "dp" vaudra 1.



Every problem has a solution. The difficulty is to find it.
0
Rejoignez-nous