Filtrage de tableau php

Fermé
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 - 5 déc. 2011 à 11:45
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 - 5 déc. 2011 à 15:32
Bonjour,

Je souhaiterais insérer des filtres dans mon tableau PHP tout comme on peut le faire dans Excel.
Je ne sais pas par qu'elle bout attaquer ce sujet.

Voici mon code actuel:

$conn=odbc_connect('excalibur','gpao','flat');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT gammes_of.DATE_FIN_OPER AS 'Fin Oper', gammes_of.OFDA AS 'OF/DA', centres.DESIGNATION AS 'Operation', gammes_of.TEMPS_ALLOUE AS 'Tps', gammes_of.TEMPS_REEL AS 'Tps réel', of_da.PRODUIT AS 'Produit', of_da.DESIGNATION AS 'Désignation', of_da.QUANTITE_DEMANDEE AS 'Qté', of_da.CUMUL_ENTREES AS 'Cumul', clients.CODE_CLIENT AS 'Client', of_da.AFFAIRE AS 'Commande', of_da.COMMENTAIRES AS 'Commentaires', NOMENCLATURES_OF.DESIGNATION AS 'Matières' FROM gpao.centres centres, gpao.clients clients, gpao.gammes_of gammes_of, gpao.NOMENCLATURES_OF NOMENCLATURES_OF, gpao.of_da of_da WHERE of_da.NUMERO_OFDA = gammes_of.OFDA AND centres.ATELIER = gammes_of.ATELIER AND centres.CENTRE = gammes_of.CENTRE AND NOMENCLATURES_OF.OFDA = of_da.NUMERO_OFDA AND of_da.CLIENT = clients.CODE_CLIENT AND ((of_da.NUMERO_OFDA=gammes_of.ofda) AND (centres.ATELIER=gammes_of.atelier) AND (centres.CENTRE=gammes_of.centre) AND (gammes_of.CLOTURE<>1) AND (VW_FGET_STATUT_OP_PRECEDENTE(gammes_of.ofda,gammes_of.sequence)=1) AND (gammes_of.ATELIER='DE') AND (of_da.STATUT='a')AND (NOMENCLATURES_OF.CATEGORIE='M')) ORDER BY of_da.COMMENTAIRES DESC, gammes_of.DATE_FIN_OPER ASC";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}

echo '<table noborder>'."\n";

echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>OF/DA</center></font></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Produit</center></font></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Opération</center></font></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Désignation</center></font></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Qté</font></center></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Cumul</font></center></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Client</font></center></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Commande</font></center></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Commentaires</center></font></u></b></td>';
echo '<td bgcolor="#004080"><b><u><font color="FFFFFF"><center>Matières</center></font></u></b></td>';
$color="1";
while (odbc_fetch_row($rs))
{
$OFDA=odbc_result($rs,"OF/DA");
$PRODUIT=odbc_result($rs,"Produit");
$OPERATION=odbc_result($rs,"Operation");
$DESIGNATION=odbc_result($rs,"Désignation");
$QUANTITE_DEMANDEE=odbc_result($rs,"Qté");
$CUMUL_ENTREES=odbc_result($rs,"Cumul");
$CODE_CLIENT=odbc_result($rs,"Client");
$AFFAIRE=odbc_result($rs,"Commande");
$COMMENTAIRES=odbc_result($rs,"Commentaires");
$MATIERES=odbc_result($rs,"Matières");
echo "<tr class='colorTab".$color."'><td>$OFDA</td>";
echo '<td><a href="file:///\\serveur-04\DONNEES\Dossiers communs\Armoire Plans Viwametal\\' .$PRODUIT . '.pdf"> ' .$PRODUIT .' </a></td>';
echo "<td>$OPERATION</td>";
echo "<td>$DESIGNATION</td>";
echo "<td>$QUANTITE_DEMANDEE</td>";
echo "<td>$CUMUL_ENTREES</td>";
echo "<td>$CODE_CLIENT</td>";
echo "<td>$AFFAIRE</td>";
echo "<td>$COMMENTAIRES</td>";
echo "<td>$MATIERES</td>";
if($color==2)
{
$color=1;
}
else
{
$color=$color+1;
}
}
echo '</table>';
odbc_close($conn);
?>

Merci d'avance.

A voir également:

6 réponses

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
Modifié par Fallentree le 5/12/2011 à 14:12
bonjour mynOthor,
Tu veux trier sur les colonnes de ta requetes.

Rajoute une entete de colonne a ta requete
chacune de ces entetes est un lien avec comme parametre le nom de la colones et l ordre de trie DESC/ASC.
Y a deux methodes:
1- ajouter a ta requete la condition associée au Get
2- appliquer le nouveau filtre a la vue associée à la requetes.

Je prefere la deuxieme mais je ne l'ai jamais retenu pour une raison simple ca rajoute un peu de code au depard au lieu de :
if (sizeof($_GET)>0){   
if (isset($_GET['Col1'])) $filter="oder by 'col1' ".$_GET['Col1']; // NB col1 ASC/DESC   
...//Liste de colonne   
}   

If ($filter!="") $requete+=$filter;


Y a quelques raccoursis sur les nom de colonnes ....
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 déc. 2011 à 14:41
Si j'ai tout compris cela ta solution me permet de trier par ordre croissant ou décroissant, mais pas de sélectionner les champs à afficher.
Exemple:
Selectionner un client unique, ou sélectionner deux nuances de matière...
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
Modifié par Fallentree le 5/12/2011 à 14:51
soit tu liste toute les colonnes dans l analyse du $_GET
soit tu fais une astuce avec le nom de la colonne.

Mais pour cumuler les filtres, il faut faire autrement: la solution 1.
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 déc. 2011 à 14:54
Mouais j'vais un peut passer pour un boulet mais j'ai pas tout compris de ta solution 1...
0

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

Posez votre question
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
5 déc. 2011 à 15:11
odbc ???
Sur mysql du peut creer une view genre de table
http://sql.1keydata.com/fr/sql-create-view.php
https://apprendre-php.com/tutoriels/tutoriel-28-mysql-5-0-les-vues.html
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 déc. 2011 à 15:32
Ouais en fait j'extrait les données depuis la base de données de notre ERP...
0