Comment fait-on pour afficher quelque donnees dans une table

Résolu/Fermé
Imelda24 - 20 janv. 2017 à 09:33
 Imelda24 - 20 janv. 2017 à 21:12
Bonjour,

j'aimerais savoir comment faire un moteur de recherche, c'est la seule chose qui me reste et je dois remettre ce projet la semaine prochaine, kelke chose de simple et facile me sera d'une grande utilite. j'affiche tous les donnees de ma table mais j'aimerais savoir comment faire pour rechercher ce qu'on veut avec des mots cles . je ne vois pas comment faire.....
A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
20 janv. 2017 à 10:59
Bonjour,

Il te faut un formulaire

<form action="" method="post">
<input type='text' name='toto'>
<input type='submit' value='chercher'>
</form>


Ensuite, tu récupères la valeur dans ton code via :
$toto = isset($_POST['toto']) ? $_POST['toto'] : NULL;


Puis, dans ta requête (celle qui te sert à afficher tes données) ajouter une clause WHERE.

SELECT *
FROM tatable
WHERE  unchamp = '$toto'



NB: Tu peux faire une recherche en utilisant la recherche EXACTE (via : = )
ou approximative en utilisant le mot clé LIKE

0
bonjour,

j'ai ce code:


<?php
    include_once("connect.php");
    

    $sql = "SELECT * FROM Ordi";
    
    ?>
   <?php
    if (isset($_POST['re']) AND !empty($_POST['re'])) {

     $re= htmlspecialchars($_POST['re']);
     
     $sql= "SELECT * FROM Ordi WHERE Office LIKE " %'.$re.'%" ";
       } ?>

     <?php if ($sql->rowcount()>0) {?>

     <ul>

     <?php while ($m =$sql->fetch()) { ?>
         
         <li> <?=$m['Office']?></li>

        <?php }?>
      </ul>
    <?php }else{ ?>

    Aucun résultat trouver pour <?=$re?>....

    <?php }
      $query = sqlsrv_query($conn, $sql);

    ?>


et pour le formulaire
<form method="POST" action=""> 
                  
                  <input type="search" name="re" placeholder="Recherche ...." />
                  <input type="submit" value="Rechercher"/>                   
 

 </form>


d'abord jáffiche tous tes données de la table et apres pourr faire le trie de ce que je veux mais malheureusement je n'ai qu'une page blanche.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
20 janv. 2017 à 18:07
Tu as des variables $sql ..... mais tu ne l'executes pas .....
enfin si... mais que à la ligne 31 ... donc pas au bon endroit !
0
Imelda24 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
20 janv. 2017 à 18:28
quand je retire cette partie dans le code

<?php if ($sql->rowcount()>0) {?>

     <ul>

     <?php while ($m =$sql->fetch()) { ?>
         
         <li> <?=$m['Office']?></li>

        <?php }?>
      </ul>
    <?php }else{ ?>

    Aucun résultat trouver pour <?=$re?>....

    <?php }?>


ca marche bien, donc mon probleme est dans cette partie mais je ne vois pas ce que c. Vous en pensez quoi
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Imelda24
20 janv. 2017 à 18:37
Le PB vient peut être du >rowcount.
Il est fortement déconseillé d'utilisé cette méthode.

Voici ce que dit la doc :

PDOStatement::rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.

Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.


Voir ici : https://www.php.net/manual/fr/pdostatement.rowcount.php


Et puis... sans oublié que tu as la parti 'exécution' de ta requête ...... APRES ce bloc de code que tu as retiré ... alors qu'il devrait être AVANT ! (voir ma précédente réponse !!! )
0
Imelda24 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié par Imelda24 le 20/01/2017 à 20:59
d'accord merci,


une derniere question j'aimerais tester les autres champs du table

 $ sql= " SELECT* FROM Ordi WHERE Office or colonne 2 or colonne 3 LIKE " %'.$re.'%"  or   LIKE " %'.$re.'%" or LIKE" %'.$re.'%";


ou

 $ sql= " SELECT* FROM Ordi WHERE Office  LIKE " %'.$re.'%"  or   LIKE " %'.$re.'%" or column 2 LIKE " %'.$re.'%" or column3  LIKE " %'.$re.'%";


ou est-ce qu'il y'a pas moyen de concatener.
qu'en pensez vous?
0
Imelda24 > Imelda24
20 janv. 2017 à 21:12
Le 2 eme ca fonctionne comme je le veux.

merci pour votre aide Jordane.

Cordialement Imelda.
0