<?
/******************************************************************/
/* fichier associe à cette page */
/******************************************************************/
//permet d'associer ce tableau à cette page
include "tabcorresp.php";
/******************************************************************/
/* concatenation de tous les champs selectionner */
/* et mise en forme pour le select */
/******************************************************************/
/* le tableau var_affichee contient les indices du tableau "tabcorresp"
qui ont été coché par l'utilisateur */
$champs="";
for ($i = 0; $i < count($var_affichee); $i++)
{
$champs=$champs.",".$var_affichee[$i];
}
// fonction permet de retirer le premier caractère de la chaine
$champs = substr("$champs",1);
/******************************************************************/
/* mise en forme du WHERE suivant les valeurs */
/* des champs entrées */
/******************************************************************/
/* La fontion "foreach" permet de parcourir le tableau (tabcorresp) */
/* La variable ind correspond à l'indice du tableau
et la variable val correspond au valeur du tableau suivant l'indice */
/*le tableau tabuni correspond aux valeurs selectionnées une à une */
/*le tableau tabdeb correspond aux valeurs de debut */
/*le tableau tabfin correspond aux valeurs de fin */
$clause="";
foreach($tabcor[0] as $ind => $val )
{
//test si un caractère a été entré dans les zones de textes correspondant au champ $ind
if (($tabdeb[$ind]) or ($tabuni[$ind]))
{
//permet de connaitre si une clause existe
$requete_clause=TRUE;
$clause=$clause." AND (";
$premier_or=TRUE;
//cas où l'utilisateur a fait une requete unique
if ($tabuni[$ind])
{
$clausetemp= explode (",","$tabuni[$ind]" );
for ($i = 0; $i < count($clausetemp); $i++)
{
if (!($premier_or))
$clause=$clause." OR ";
if ($tabcor[1][$ind]=="numerique" )
$clause=$clause.$ind."=".$clausetemp[$i];
else
$clause=$clause.$ind."="."'".$clausetemp[$i]."'";
$premier_or=FALSE;
}
}
//cas où l'utilisateur a fait une requete avec un debut et une fin
if ($tabdeb[$ind])
{
while ($tabdeb[$ind] <= $tabfin[$ind])
{
if (!($premier_or))
$clause=$clause." OR ";
if ($tabcor[1][$ind]=="numerique" )
$clause=$clause.$ind."=".$tabdeb[$ind];
else
$clause=$clause.$ind."="."'".$tabdeb[$ind]."'";
$tabdeb[$ind]++;
$premier_or=FALSE;
}
}
$clause=$clause." )";
}
}
if ($requete_clause)
// fonction permet de retirer des caractères de la chaine (pour le and)
$clause = "WHERE ".substr("$clause", 4);
/******************************************************************/
/* mise en forme du ORDER BY suivant les valeurs */
/* d'ordre de trie entrées */
/******************************************************************/
//boolean permettant de connaitre si order by existe
$requete_order=FALSE;
//mise en place d'un tableau temporaire
foreach($tabcor[0] as $ind => $val )
{
if (!($tabtrie[$ind]==''))
{
$tabtrietemp[$tabtrie[$ind]]=$ind;
$requete_order=TRUE;
}
}
//création du ORDER BY
$order="";
for ($i = 1; $i <= count($tabtrietemp); $i++)
{
$order=$order.",".$tabtrietemp[$i];
}
if ($requete_order)
// fonction permet de retirer le premier caractère de la chaine
$order = "ORDER BY ".substr("$order",1);
/******************************************************************/
/* requete SQL */
/******************************************************************/
$QUERYs="
SELECT $champs
FROM $joint
$clause
$order";
//permet d'enlever les espaces avant et après du QUERYs
$QUERYs= trim ($QUERYs);
$QUERYs = preg_replace("/(\n|\r\n)/","", $QUERYs);
/******************************************************************/
/* pour la somme */
/******************************************************************/
/* le tableau var_somme contient les numeros des colonnes
qui ont été coché par l'utilisateur pour faire la somme */
?>
<BODY onload="document.forms[0].submit()>
<FORM action='tableauaffiche.php' method='post'>
<INPUT TYPE=HIDDEN NAME="var_sommes" VALUE="<?php echo $var_somme; ?>">
</FORM>
</BODY>
<?
//header("Location: tableauaffiche.php" );
//setcookie("QUERY","$QUERYs" );
//setcookie("var_sommes","$var_somme" );
?>