Page 1 sur 1

probleme affichage requette

Posté : 15 janv. 2011, 13:25
par Lisa
bonjour,

j'ai un petit formulaire de recherche qui va m'afficher des infos de la base , le form est sur la même page que l'affichage du résultat.

Mon problème est qu'au départ, au chargement de la page ou il y'a le formulaire j'ai déjà l'affichage de quelques enregistrement de la table ( j'ai limité à 10).

je voudrais que ça n'affiche la liste correspondant au mot clé qu'une fois la recherche lancée , qu'au départ ça n'affiche rien

voici le code

Code : Tout sélectionner

<?php //moteur recherche $Search1_DefaultWhere = ""; if (!session_id()) session_start(); if ((isset($_POST["Search1"])) && ($_POST["Search1"] != "")) { $Search1 = new FilterDef; $Search1->initializeQueryBuilder("MYSQL","1"); //keyword array declarations $KeyArr0 = array("villes"); //comparison list additions $Search1->keywordComparison($KeyArr0,"".((isset($_POST["cherchedata"]))?$_POST["cherchedata"]:"") ."","AND","Includes",",%20","%20","%22","%22",0); $Search1->addComparisonFromEdit("com_data","cherchecp","AND","=",0); //save the query in a session variable if (1 == 1) { $_SESSION["Search1_homefrance3"]=$Search1->whereClause; } } else { $Search1 = new FilterDef; $Search1->initializeQueryBuilder("MYSQL","1"); //get the filter definition from a session variable if (1 == 1) { if (isset($_SESSION["Search1_homefrance3"]) && $_SESSION["Search1_homefrance3"] != "") { $Search1->whereClause = $_SESSION["Search1_homefrance3"]; } else { $Search1->whereClause = $Search1_DefaultWhere; } } else { $Search1->whereClause = $Search1_DefaultWhere; } } $Search1->whereClause = str_replace("\\''", "''", $Search1->whereClause); $Search1whereClause = ''; ?> <?php $maxRows_recherchedata = 10; $pageNum_recherchedata = 0; if (isset($_GET['pageNum_recherchedata'])) { $pageNum_recherchedata = $_GET['pageNum_recherchedata']; } $startRow_recherchedata = $pageNum_recherchedata * $maxRows_recherchedata; mysql_select_db($database_accesville, $accesville); $query_recherchedata = "SELECT * FROM table ORDER BY rand () "; setQueryBuilderSource($query_recherchedata,$Search1,false); $query_limit_recherchedata = sprintf("%s LIMIT %d, %d", $query_recherchedata, $startRow_recherchedata, $maxRows_recherchedata); $recherchedata = mysql_query($query_limit_recherchedata, $accesville) or die(mysql_error()); $row_recherchedata = mysql_fetch_assoc($recherchedata); if (isset($_GET['totalRows_recherchedata'])) { $totalRows_recherchedata = $_GET['totalRows_recherchedata']; } else { $all_recherchedata = mysql_query($query_recherchedata); $totalRows_recherchedata = mysql_num_rows($all_recherchedata); } $totalPages_recherchedata = ceil($totalRows_recherchedata/$maxRows_recherchedata)-1; ?> <form name="form1" method="post" action=""> <input class="textetitre2" name="cherchedata" type="text" id="cherchedata" value="Entrez une info" /> <input class="textetitre2" name="code" type="text" id="cherchecp" value="code" size="12"><input name="Search1" type="submit" class="boutoncarte" value="OK"></td> <?php do { ?> <?php echo $row_recherchedata['data']; ?> <?php } while ($row_recherchedata = mysql_fetch_assoc($recherchedata)); ?> </table></td> </tr> </table> </form> <?php mysql_free_result($recherchedata); ?>
est ce que je peux controller le fait qu'il y'ai ou pas l'affichage de la liste selon une condition
par exemple ici

Code : Tout sélectionner

//save the query in a session variable if (1 == 1) { $_SESSION["Search1_homefrance3"]=$Search1->whereClause; } }
merci pour votre aide

Re: probleme affichage requette

Posté : 15 janv. 2011, 17:30
par moogli
salut,


il faut tester si le formulaire a été valider, par exemple avec if (isset($_POST['Search1'])) { // requete sql et affichage }


@+

Re: probleme affichage requette

Posté : 17 janv. 2011, 13:24
par Lisa
Merci pour la piste

j'ai ajouté un champs hidden au form ( appelé existe) et je test si ce champ est vide ou non pour afficher ou non le résultat , ça marche.

Code : Tout sélectionner

<?php if (!empty($_POST['existe'])) { echo $row_requet['data']; } else if (empty($_POST['existe'])) { echo ""; } ?>

Re: probleme affichage requette

Posté : 17 janv. 2011, 16:01
par xTG
Plutôt que de rajouter un champs, utilise la valeur du bouton submit ($_POST['Search1']). :)