Filtrer des infos d'une base de données via un textbox

cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009 - 23 août 2005 à 10:59
cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009 - 23 août 2005 à 15:22
Bonjour à tous,

Je vais essayer de faire vite et bien pour vous expliquer mon problème. J'ai une page "index", coder en php, qui permet de visualiser des informations enregistrées sur une base de données sous forme de tableau.
Ce tableau est constitué de 11 colonnes dont une represente un pourcentage "d'occupation".
Pour cette colonne je souhaiterais ajouter un textbox dans lequel l'utilisateur pourrait saisir un pourcentage (numerique à 2 chiffres). Suite à cette saisie la personne, après avoir préalablement cliquer sur un bouton, pourrait visualiser, sur la même page, l'ensemble des enregsitrements égaux ou supérieurs à son choix.
ex : si l'utilisateur inscrit 90 dans le texbox pour 90% l'ensemble des enregsistrements de la base de données supérieurs ou egale à 90% "d'occupation" s'afficheraient dans le tableau.

Voici un peu de code (pas très commenté je vous l'accorde) qui vous sera peut etre utile pour résoudre mon problème, merci de me venir en aide.

Voici le code :

<?
# Unite de calcul de la croissance en secondes (1 semaine =86400*7 sec)
$UNITE=86400*7;
include "db_mysql_class.inc";

$db=new tcheDB;

$query="select concat(object,subobject,nrrangenr,toyear) as cle, max(unix_timestamp(quand))-min(unix_timestamp(quand)) as t, max(unix_timestamp(quand)) as tm,max(valeur) as ma, min(valeur) as mi,object,subobject,nrrangenr,toyear,quand,debut,max(fin) as f from TCHEinfos group by cle";

#echo $query."
";

$db->query($query);

echo "<center>Variation des tranches de numéro</center>
";
printf("
");
echo "\";
$nc=0;
echo \"----
Object, SubObject, NrRangeNr, \";
echo \"TO YEAR, Utilise / Total, \";
echo \"% remplissage, N° début, N° fin, N° actuel, \";
echo \"Taux de croissance / semaine, Butee, \n\";
while ($results=$db->fetch_array()) {
$ma = $results[\"ma\"];
$mi = $results[\"mi\"];
$t = $results[\"t\"];
$tm = $results[\"tm\"];
$debut = $results[\"debut\"];
$fin = $results[\"f\"];
$act = $ma;
$object = $results[\"object\"];
$utilise = $act-$debut;
$total = $fin-$debut+1;
$taux=$utilise/$total*100;
if ($t!=0)
$croiss=$UNITE*($ma-$mi)/$t;
else
$croiss=0;
$coul=\"#00FF00\";
if ($taux>60)
$coul=\"#FFBD40\";
if ($taux>80)
$coul=\"#FF0000\";
echo \"----
\";
echo \"".$object.", \";
echo \"".$results["subobject"].", \";
echo \"".$results["nrrangenr"].", \";
echo \"".$results["toyear"].", \";
echo \"".$utilise." / ";
echo $total.", \";
# echo $total.\"-- $ma -- $mi -- $t ** $act - $debut - $fin</td>\";
# printf (\"% 6d, \",$utilise);
printf (\"%6.3f %%, \",$taux);
echo \"$debut, \";
echo \"$fin, \";
echo \"$act, \";
if ($ma-$mi!=0)
{
$butee=$tm+$t*($fin-$ma)/($ma-$mi);
if ($butee<mktime(0,0,0,1,1,2020))
$dbutee=date(\"d/m/Y\",$butee);
else
$dbutee=\"NO Pb\";
}
else
$dbutee=\" \";
printf (\"%6.0f, \",$croiss);
echo \"$dbutee, \";

printf(\"\n\");
}
echo "

";
?>

8 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
23 août 2005 à 11:10
Salut,



Euh... et c'est quoi le problème ?
0
cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009
23 août 2005 à 11:21
salut J_G,

je sais comment inserer le textbox et le bouton ( texbox : <textarea rows="8" name="textarea" cols="54"></textarea>

et bouton : )
Le problème c'est que je ne sais pas comment coder le bouton pour qu'il me renvoi sur la même page les infos correspondant au pourcentage inscrit

t'as une idée ???
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
23 août 2005 à 11:29
D'ac,



Il faut que tu te renseigne sur le principe dit du : formulaire ...



En gros (trés épais) :

<?php

// c'est comme ça que tu recup les info de la textbox

if( isset( $_POST['pouet'] ) ) {

$je_recupere_les_infos_du_formulaire = $_POST['pouet'];

} else {

$je_recupere_les_infos_du_formulaire = false;

}

?>

<!-- c'est comme ça que tu envoie les infos de la textbox -->

<form>





</form>



Mais renseigne toi mieux !!!!!



A+
0
cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009
23 août 2005 à 11:54
d'accord j'ai ma texbox avec mon bouton clic ainsi que ma valeur mais comment je peux faire pour que cette valeur (à savoir le pourcentage d'occupation) soit reprise en tant qu'argument afin de faire apparaitre dans mon tableau les informations qui lui sont egales ou supérieures ???, dois je refaire un query ???

Merci quand même J_G
0

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

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
23 août 2005 à 12:09
Non mais attends !!!!!



t'as fait comment pour afficher ton tableau ????

"select blablablablabla as truc_chose group by cle"



OUI,...NON ? Bon ben une fois que tu a récup 'pouet', tu fais :

"select blablablablabla as truc_chose WHERE pourcent >= ' $je_recupere_les_infos_du_formulaire' group by cle"



Puis aller ! comme t'es malin, tu vas même faire ça ... :

if( isset( $_POST['pouet'] ) ) {
$recup = "WHERE pourcent >='".$_POST['pouet']"'";
} else {
$recup = "";
}

// ça marche à tous les coups !

$query = "select blablablablabla as truc_chose $recup' group by cle"
0
cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009
23 août 2005 à 14:15
Voici ce que ça donne en ligne de code t'en penses quoi ???
je ne peux pas te dire si ça répond à ma question car je n'ai pas la possibilitée pour l'instant de tester tes modifs, je te tiendrais au courant. Une dernière chose je ne comprend pas ton query entre autre pourquoi tu y met la variable $recup et à quoi sert le ' situé après ( je debute encore en php, je n'y comprend pas grand chose ...)

<?
if( isset( $_POST['occupation'] ) ) {
$recup = "where $taux >='".$_POST['occupation']"'"
} else {
$recup= "";
}
?>
<form>


</form>
<?
$db=new tcheDB;

$query="select concat(object,subobject,nrrangenr,toyear) as cle, max(unix_timestamp(quand))-min(unix_timestamp(quand)) as t, max(unix_timestamp(quand)) as tm,max(valeur) as ma, min(valeur) as mi,object,subobject,nrrangenr,toyear,quand,debut,max(fin) as f from TCHEinfos group by cle";
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
23 août 2005 à 15:10
Mille excuses... Je tape beaucoup trop vite et, pensant que tu connais un peu PHP, j'ai l'espoir que tu corrige de toi même...



J'ai essayé de fair un debuggage "syntaxique" (en rouge). Par contre, je ne garanti pas le bon fonctionnement.



<hr size= "2" width="100%"><?php

if( isset( $_POST['occupation'] ) ) {

$recup = "WHERE $taux >='".$_POST['occupation'] . "'";

} else {

$recup = "";

}

?>

<form>





</form>

<?php

$db=new tcheDB;



$query=

"SELECT
concat(object,subobject,nrrangenr,toyear) AS cle,



MAX(unix_timestamp(quand))-MIN(unix_timestamp(quand)) AS t,

unix_timestamp(quand) AS tm,

MAX(valeur) AS ma,

MIN(valeur) AS mi,

object,

subobject,

nrrangenr,

toyear,

quand,

debut,

MAX(fin) AS f

FROM
TCHEinfos

$recup

GROUP BY cle";

?>
0
cs_ZUZ Messages postés 14 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 29 mai 2009
23 août 2005 à 15:22
Super sympas J_G, c'est moi qui m'excuses de ne pas t'avoir avertis plus tôt. En tous cas merci beaucoup pour ton aide, ça à l'air de correspondre à ce que je veux.
Comme je te l'ai dis tout à l'heure je ne peux pas le tester pour l'instant, j'essaierais ton code demain surement je t'en dirais plus à ce moment là.

encore merci, @+
0
Rejoignez-nous