Filtrage de tableau php
myn0thor
Messages postés
73
Statut
Membre
-
myn0thor Messages postés 73 Statut Membre -
myn0thor Messages postés 73 Statut Membre -
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.
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:
- Filtrage de tableau php
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
6 réponses
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 :
Y a quelques raccoursis sur les nom de colonnes ....
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 ....
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...
Exemple:
Selectionner un client unique, ou sélectionner deux nuances de matière...
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.
soit tu fais une astuce avec le nom de la colonne.
Mais pour cumuler les filtres, il faut faire autrement: la solution 1.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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