probleme affichage requette

Petit nouveau ! | 2 Messages

15 janv. 2011, 13:25

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 janv. 2011, 17:30

salut,


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


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

17 janv. 2011, 13:24

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 ""; } ?>

ViPHP
xTG
ViPHP | 7331 Messages

17 janv. 2011, 16:01

Plutôt que de rajouter un champs, utilise la valeur du bouton submit ($_POST['Search1']). :)