[RESOLU] Affichage de donnée si un champs n'est pas récupéré.

Eléphanteau du PHP | 10 Messages

16 mars 2017, 23:36

Bonsoir,

Je réalise un moteur de recherche en php, je souhaiterais que lorsque qu'aucune recherche n'est effectuée, toutes les données de la table soient affichées.

Voici mon code :
<?php include('connexionBdd.php'); ?>

<form method="POST">
    <input type="text" class="form-control input-sm" maxlength="64" placeholder="Rechercher" name="search"/>
    <button type="submit" class="btn btn-primary btn-sm" name="validRecherche">valider</button>
</form>


<?php

$recherche = htmlspecialchars($_POST['search']);

if(isset($_POST['validRecherche'])) {
    if(!empty($recherche)) {

        $req = $bdd->query('SELECT * FROM formation WHERE titre LIKE "%'.$recherche.'%" OR date_debut LIKE "%'.$recherche.'%" OR nb_place LIKE "%'.$recherche.'%" OR cout_jours LIKE "%'.$recherche.'%" OR contenu LIKE "%'.$recherche.'%" ');

        if($donnee = $req->rowCount() > 0) {
            while($donnee = $req->fetch()) {
                echo $donnee['titre'].' - - '.$donnee['date_debut'].' - - '.$donnee['cout_jours'].' - - '.$donnee['nb_place'].' - - '.$donnee['contenu'].'<br />';
            }
        } else {
            echo "Aucun resultat";
        }
    }
} else {

    $reqform = $bdd->query('SELECT * FROM formation');

    while($donnees = $reqform->fetch()) {
        echo $donnees['titre'].' - - '.$donnees['date_debut'].' - - '.$donnees['cout_jours'].' - - '.$donnees['nb_place'].' - - '.$donnees['contenu'].'<br />';
    }
}

?>
Merci a tous.

Mammouth du PHP | 834 Messages

17 mars 2017, 00:30

au lieu de faire :
echo "Aucun resultat";
tu fais la même chose que dans l'autre else, en mettant le code dans une fonction pour éviter les redondances et 2 appels de la fonction.

Eléphanteau du PHP | 10 Messages

17 mars 2017, 00:40

Merci,

Apres modifications :
<?php include('connexionBdd.php'); ?>

<form method="POST">
    <input type="text" class="form-control input-sm" maxlength="64" placeholder="Rechercher" name="search"/>
    <button type="submit" class="btn btn-primary btn-sm" name="validRecherche">valider</button>
</form>


<?php

$recherche = htmlspecialchars($_POST['search']);

if(isset($_POST['validRecherche'])) {
    if(!empty($recherche)) {

        $req = $bdd->query('SELECT * FROM formation WHERE titre LIKE "%'.$recherche.'%" OR date_debut LIKE "%'.$recherche.'%" OR nb_place LIKE "%'.$recherche.'%" OR cout_jours LIKE "%'.$recherche.'%" OR contenu LIKE "%'.$recherche.'%" ');

        if($donnee = $req->rowCount() > 0) {
            while($donnee = $req->fetch()) {
                echo $donnee['titre'].' - - '.$donnee['date_debut'].' - - '.$donnee['cout_jours'].' - - '.$donnee['nb_place'].' - - '.$donnee['contenu'].'<br />';
            } 
        } else {
            echo "Aucun resultat";
        } 
    } else {

        $reqform = $bdd->query('SELECT * FROM formation');

        while($donnees = $reqform->fetch()) {
            echo $donnees['titre'].' - - '.$donnees['date_debut'].' - - '.$donnees['cout_jours'].' - - '.$donnees['nb_place'].' - - '.$donnees['contenu'].'<br />';
        }
    } 
}

?>