IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment afficher les résultats d'un Moteur de Recherche dans une Table ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Comment afficher les résultats d'un Moteur de Recherche dans une Table ?
    Bonjour.

    Je suis entrain de concevoir un Moteur de recherche pour mon Projet. Mais je me sens grave bloqué. Voilà pourquoi je sollicite votre aide ce matin.
    Voici les Codes:

    CODE N°1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <meta charset="utf-8" />
    <?php
     
    $bdd = new PDO('mysql:host=localhost;dbname=cheg;charset=utf8','root','');
     
    $search = $bdd->query('SELECT * AS searching FROM tbl_account ORDER BY id DESC');
    if(isset($_GET['q']) AND !empty($_GET['q'])) {
       $q = htmlspecialchars($_GET['q']);
       $search = $bdd->query('SELECT * AS searching FROM tbl_account WHERE account + balance+type+status+statement LIKE "%'.$q.'%" ORDER BY id DESC');
       if($search->rowCount() == 0) {
          $search = $bdd->query('SELECT * AS searching FROM tbl_account WHERE CONCAT(account + balance+type+status+statement) LIKE "%'.$q.'%" ORDER BY id DESC');
       }
    }
    ?>
    <form method="GET">
       <input type="search" name="q" placeholder="Recherche un Numéro de Compte..." />
       <input type="submit" value="Valider" />
    </form>
    <?php if($search->rowCount() > 0) { ?>
       <ul>
       <?php while($a = $search->fetch()) { ?>
          <li><?= $a['searching'] ?></li>
       <?php } ?>
       </ul>
    <?php } else { ?>
    Aucun résultat pour: <?= $q ?>...
    <?php } ?>
    CODE N°2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     <table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="text">
      <tr align="center" id="listTableHeader"> 
       <td>User Name</td>
       <td>Account No.</td>
       <td>Balance</td>
       <td width="120">Account Type</td>
       <td width="80">Account status</td>
       <td width="70">Statement</td>
      </tr>
    <?php
    while($row = dbFetchAssoc($result)) {
    	extract($row);
    	if ($i%2) {
    		$class = 'row1';
    	} else {
    		$class = 'row2';
    	}
     
    	$i += 1;
     
    	$atype = "";
    	if($type == "CA"){$atype = "Checking Account";}
    	else if($type == "SA") {$atype = "Saving Account";}
    	else if($type == "FDA") {$atype = "Fixed deposit Account";}
    ?>
      <tr class="<?php echo $class; ?>"> 
       <td><?php echo $fname .' '.$lname; ?></td>
       <td><div align="center"><a href="<?php echo WEB_ROOT; ?>cheg/account/?view=detail&accId=<?php echo $acc_id; ?>"><?php echo $acc_no; ?></a></div></td>
       <td><div align="center">$&nbsp;<?php echo $balance; ?></div></td>
       <td width="120" align="center"><?php echo $atype; ?></td>
       <td width="80" align="center">
       	<a href="javascript:changeAccStatus(<?php echo $acc_id; ?>, '<?php echo $status; ?>');">
       	<?php echo $status == 'INACTIVE'? 'Inactive' : 'Active'; ?>
    	</td>
       <td width="70" align="center"><a href="javascript:viewAccountStatement(<?php echo $id; ?>, <?php echo $acc_no; ?>);">Statement</a></td>
      </tr>
    <?php
    } // end while
     
    ?>
      <tr> 
       <td colspan="5">&nbsp;</td>
      </tr>
      <tr> 
       <td colspan="5" align="right"></td>
      </tr>
     </table>
    1 - Je voudrais donc savoir comment afficher les résultats de mon Moteur de Recherche dans le Code de la Table du Code 2 ci-dessus ???

    2 - Existe t-il une méthode pour permettre à l'Utilisateur de faire seulement les recherches en saisissant le Numéro de Compte (Champs "ACCOUNT" dans la Table "tbl_account") ???
    Si oui, comment faire du "LIKE" pour permettre à l'Utilisateur de fournir seulement le Numéro de Compte (Champs "ACCOUNT" dans la Table "tbl_account") dans la barre de Recherche afin de trouver les résultats concernant le Compte de façon à les afficher dans une dans le Code de la Table du Code 2 comme id, User Name, Account No, Balance, Account Type, Account status, Statement ???

    3 - N'étant pas trop sûr de mes Codes, je souhaiterais que vous me corrigiez aussi en vérifiant si ce que j'ai fait est correcte ???

    Merci d'avance de m'aider car j'ai passé toute la nuit à réfléchir là dessus sans suite.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- SQL : CONCAT
    CONCAT(colonne1, colonne2) avec virgule, pas +

    2- PDO : Il faut impérativement faire des requêtes préparées
    prepare() - execute()

    3- PDO : "SELECT *..." Pas bien...
    Indique uniquement les colonnes nécessaires à l'affichage

    4- extract($row); Pas bien...
    Tu crées inutilement des variables $colonne_machin, $colonne_truc,...
    Ecris les noms, en les protégeant au passage : htmlspecialchars($row['colonne_machin']), htmlspecialchars($row['colonne_truc']),...

    5- Enfin (?), EXPLIQUE ce qui "ne marche pas".
    On ne peut pas deviner...

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Merci pour votre réponse mais j'avoue que ce n'est pas encore totalement clair. Concernant le 3 et le 4 de votre réponse.
    Au niveau du 3; vous avez dit de mettre seulement le nécessaire. Et bien, je voulais savoir nécessaire comme quoi exactement ???
    Et concernant le 4, vous dites de créer inutilement les variables $colonne_machin, $colonne_truc,... en les protégeant. Si je dois créer ces variables inutiles, à quelle partie de mon Code dois-je le faire ???

    NB: Sans oublier que le but du projet est de faire un Moteur de Recherche pouvant afficher des résultats dans une Table.

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu as mal compris.
    "Pas bien...", "inutilement" = NE PAS faire.

    Citation Envoyé par jreaux62 Voir le message
    5- Enfin (?), EXPLIQUE ce qui "ne marche pas"....

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/02/2012, 09h17
  2. Réponses: 8
    Dernier message: 22/04/2011, 21h27
  3. Réponses: 10
    Dernier message: 26/12/2008, 11h17
  4. Réponses: 14
    Dernier message: 28/04/2007, 12h25
  5. Réponses: 2
    Dernier message: 27/09/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo