PHP plusieurs champs de la recherche

  • amiecutietoes
  • Newbie
  • Newbie
  • Avatar de l’utilisateur
  • Inscription: Avr 21, 2010
  • Messages: 10
  • Loc: Los Angeles, CA
  • Status: Offline

Message Avril 21st, 2010, 4:16 pm

Bonjour à tous!

Je travaille sur un formulaire de recherche en PHP pour un site web clients. Alors que tout fonctionne, la recherche apporte des résultats. Ce que je suis désireux d'accomplir aujourd'hui est d'être capable de rechercher plus d'un domaine, en particulier le prénom et le nom de famille. Disons que si un utilisateur saisit disons cherche un prénom et un nom dans le champ de recherche puis, je le veux pour afficher les résultats sur cette base. À l'heure actuelle si vous l'essayez, il dit qu'il n'y a pas de résultats. Ma pensée est de savoir comment il est codé Ive pour la zone de recherche pour être capable de rechercher dans un seul champ de colonne pour chaque ligne.

Voici la partie de mon code:
[Code] / / requête de table LA BASE DE DONNÉES
$ sql = "SELECT * FROM contrats
Lorsque le statut LIKE% "& #46; $ searchTermDB & #46;%
OU DealerName LIKE% "& #46; $ searchTermDB & #46;%
Ou le concessionnaire LIKE% "& #46; $ searchTermDB & #46;%
OU contrat comme "% & Ou nom LIKE "% & #46; $ searchTermDB & #46;%
Ou prénom LIKE% "& #46; $ searchTermDB & #46;%
OU EffDate LIKE% "& #46; $ searchTermDB & #46;%
OU TermDate LIKE% "& #46; $ searchTermDB & #46;%
OU année comme "% & #46; $ searchTermDB & #46;%
Ou faites comme% "& #46; $ searchTermDB & #46;%
Ou le modèle LIKE% "& #46; $ searchTermDB & #46;%
OU% en série comme "& #46; $ searchTermDB & #46;%
OU TermMeter LIKE% "& #46; $ searchTermDB & #46;%
Ou d'un plan LIKE% "& #46; $ searchTermDB & #46] CODE ;"%";[/

Permettez-moi de savoir de toutes les suggestions. Merci!

- Amie
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Avril 21st, 2010, 4:16 pm

  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Avril 22nd, 2010, 7:14 am

PHP Code: [ Select ]
$sql = "SELECT * FROM contacts WHERE 1 ";
$sql .= ($first_name != "") ? "AND FirstName LIKE '%{$first_name}%'" : "";
$sql .= ($last_name != "") ? "AND LastName LIKE '%{$last_name}%'" : "";
  1. $sql = "SELECT * FROM contacts WHERE 1 ";
  2. $sql .= ($first_name != "") ? "AND FirstName LIKE '%{$first_name}%'" : "";
  3. $sql .= ($last_name != "") ? "AND LastName LIKE '%{$last_name}%'" : "";

etc...
Let's leave all our *plum* where it is and go live in the jungle ...
  • amiecutietoes
  • Newbie
  • Newbie
  • Avatar de l’utilisateur
  • Inscription: Avr 21, 2010
  • Messages: 10
  • Loc: Los Angeles, CA
  • Status: Offline

Message Avril 22nd, 2010, 11:10 am

Je veux seulement un champ de recherche entrée. Je veux qu'il recherche Sélectionner les champs à ma table et permet de dire que je ne la recherche de 2 mots dans la case d'entrée, je veux trouver les résultats sur cette base.

Exemple:

J'ai 50 Johns sur la table, chacun avec différents noms de famille. Autres domaines pour chaque John comprend le numéro de contrat, marque de voiture, type de voiture, et beaucoup d'autres domaines. Afin de restreindre celui-ci, je veux être en mesure de taper "John Smith" et faire un résultat qui montre que lui. Maintenant, si j'ai simplement saisi dans "Smith" je voudrais obtenir un tas de gens avec le nom de famille Smith. Donc, vous voyez que j'ai besoin une zone de texte pour pouvoir s'appliquer à tous les champs de recherche.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Avril 22nd, 2010, 11:41 pm

thats assez difficile une...Je pense que tu dois faire, c'est d'abord puis, exploser la chaîne, séparés par des espaces, puis effectuez la requête...quelque chose comme ce qui suit...

PHP Code: [ Select ]
<?php
  $search_words = explode(" ",$searchTermDB);
  $sql_select = "SELECT * FROM contacts WHERE 1 ";
  foreach($search_words as $word){
    $sql_select .= "AND(";
    $sql_select .= "Status LIKE '%{$word}%'
                   OR DealerName LIKE '%{$word}%'
                   OR Dealer LIKE '%{$word}%'
                   OR Contract LIKE '%{$word}%'
                   OR LastName LIKE '%{$word}%'
                   OR FirstName LIKE '%{$word}%'
                   OR EffDate LIKE '%{$word}%'
                   OR TermDate LIKE '%{$word}%'
                   OR Year LIKE '%{$word}%'
                   OR Make LIKE '%{$word}%'
                   OR Model LIKE '%{$word}%'
                   OR Serial LIKE '%{$word}%'
                   OR TermMeter LIKE '%{$word}%'
                   OR Plan LIKE '%{$word}%'";
    $sql_select .= ") ";
  }
?>
  1. <?php
  2.   $search_words = explode(" ",$searchTermDB);
  3.   $sql_select = "SELECT * FROM contacts WHERE 1 ";
  4.   foreach($search_words as $word){
  5.     $sql_select .= "AND(";
  6.     $sql_select .= "Status LIKE '%{$word}%'
  7.                    OR DealerName LIKE '%{$word}%'
  8.                    OR Dealer LIKE '%{$word}%'
  9.                    OR Contract LIKE '%{$word}%'
  10.                    OR LastName LIKE '%{$word}%'
  11.                    OR FirstName LIKE '%{$word}%'
  12.                    OR EffDate LIKE '%{$word}%'
  13.                    OR TermDate LIKE '%{$word}%'
  14.                    OR Year LIKE '%{$word}%'
  15.                    OR Make LIKE '%{$word}%'
  16.                    OR Model LIKE '%{$word}%'
  17.                    OR Serial LIKE '%{$word}%'
  18.                    OR TermMeter LIKE '%{$word}%'
  19.                    OR Plan LIKE '%{$word}%'";
  20.     $sql_select .= ") ";
  21.   }
  22. ?>

Que devrait faire l'affaire.
Let's leave all our *plum* where it is and go live in the jungle ...

Afficher de l'information

  • Total des messages de ce sujet: 4 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 122 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC