Faire une recherche

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Faire une recherche

par dunbar » 15 août 2006, 12:52

Tout ce dont tu as besoin est d'un champ input et un bouton de soumission.

<?php

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$sql_recherche = (isset($_POST['recherche']) ? " WHERE ref = '".$_POST['recherche']."'" : ""; // ou avec un ref LIKE... à toi de voir

$select = 'SELECT ref,nom,adr,rem,tech,date,tel FROM prestation_septembre_2006 '.$sql_recherche;

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

?>

<form method="POST" action="" >
<input type="text" name="recherche">
<input type="submit" name="valider" value="Valider">
</form>

<?php

// si on a récupéré un résultat on l'affiche.
if($total) { 
....
Merci je vais travailler dessus... :wink:
$sql_recherche = (isset($_POST['recherche']) ? " WHERE ref = '".$_POST['recherche']."'" : ""; 
J'ai un PARSE ERROR avec cette ligne la correction
$sql_recherche = (isset($_POST['recherche'])) ? " WHERE ref = '".$_POST['recherche']."'" : "";
Un grand merci ça fonctionne NICKEL. :wink:

Il me reste encore une question concernant la recherche : est t'il possible de faire une recherche dans plusieurs TABLES ?

Merci

par Truc » 15 août 2006, 12:36

Tout ce dont tu as besoin est d'un champ input et un bouton de soumission.

<?php

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$sql_recherche = (isset($_POST['recherche']) ? " WHERE ref = '".$_POST['recherche']."'" : ""; // ou avec un ref LIKE... à toi de voir

$select = 'SELECT ref,nom,adr,rem,tech,date,tel FROM prestation_septembre_2006 '.$sql_recherche;

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

?>

<form method="POST" action="" >
<input type="text" name="recherche">
<input type="submit" name="valider" value="Valider">
</form>

<?php

// si on a récupéré un résultat on l'affiche.
if($total) { 
....

par dunbar » 15 août 2006, 12:24

encore mieux que la ligne rechercher s'affiche en rouge dans le tableau
Pas sûr que ce soit mieux de tout afficher et de faire reortir les resultats positifs... autant n'afficher que ceux-ci :wink:

Sinon quel est réelement ton problème... tu dis savoir lire les données d'une table mais pas celles renvoyées par la requête de recherche qui n'est pourtant pas différente pour la lecture. :-k

Pour l'affichage sur une page à part suffit de le préciser dans l'action de ton formulaire.
Oui regarde j'ai mon code qui va chercher les resultat de la TABLE (facile)
/* connection à la DB */
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = 'SELECT ref,nom,adr,rem,tech,date,tel FROM prestation_septembre_2006';

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);



// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo '<center><table border="0,5" bgcolor="#000080">'."\n";
        /* première ligne on affiche les titres ref,nom,adr,rem,tech,date,tel dans 7 colonnes */
        echo '<tr>';
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Réf Client</font></b></td>';
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Nom</font></b></td>';
                echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Adresse</font></b></td>';
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Remarques</font></b></td>';
                echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Téléphone client</font></b></td>' ;
                echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Date</font></b></td>' ;
                echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Nom du technicien</font></b></td>' ;

                echo '</tr>'."\n";
    // lecture et affichage des résultats sur 7 colonnes, 1 résultat par ligne.
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["ref"].'</font></td>';
        echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["nom"].'</font></td>';
                echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["adr"].'</font></td>';
        echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["rem"].'</font></td>';
                echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["tel"].'</font></td>';
                echo '<td bgcolor="#FFFFFF" nowrap><font size="2">'.$row["date"].'</font></td>';
                echo '<td bgcolor="#FFFFFF"><font size="2">'.$row["tech"].'</font></td>';
                echo '</tr>'."\n";

    }
    echo '</table></center>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>
Mais dans ma petite tête :boire4: (et la solution est surement bête) je n'arrive pas voir comment intégrée un input ou autre recherche qui ne m'afficherais que la ligne rechercher la recherche se ferais sur une référence.
Je sais que je pourrais dans le cas ci faire un ORDY ou SELECT mais je ne sais pas comment relier mon input à cette solution

par Truc » 15 août 2006, 12:19

encore mieux que la ligne rechercher s'affiche en rouge dans le tableau
Pas sûr que ce soit mieux de tout afficher et de faire reortir les resultats positifs... autant n'afficher que ceux-ci :wink:

Sinon quel est réelement ton problème... tu dis savoir lire les données d'une table mais pas celles renvoyées par la requête de recherche qui n'est pourtant pas différente pour la lecture. :-k

Pour l'affichage sur une page à part suffit de le préciser dans l'action de ton formulaire.

par dunbar » 15 août 2006, 11:31

+1
Sa aide beaucoup se genre de commentaire

par thehawk » 15 août 2006, 09:12

+1

par icebreak » 15 août 2006, 02:41

La faut programmer un ptit prog de recherche dans chaque resultat de la requête. Preg_replace sera ton ami !

par graphistnet » 14 août 2006, 22:03

MATCH pour MySQL est très intéressant aussi.

par dunbar » 14 août 2006, 21:53

Dans ce cas il faut que tu regardes les bases du php/mysql avant de poursuivre plus loin.

http://www.phpdebutant.org/article66.php
Je sais comment affiché les données d'une table se que je veux dire c'est que le bouton recherche est sur la page qui affiche tout les résultat, et se que je ne sais pas c'est comment faire pour que quand l'utilisateur clique sur envoyer il soit dirigé sur la page de résultat ou alors encore mieux que la ligne rechercher s'affiche en rouge dans le tableau ?

par charabia » 14 août 2006, 21:49

Dans ce cas il faut que tu regardes les bases du php/mysql avant de poursuivre plus loin.

http://www.phpdebutant.org/article66.php

par dunbar » 14 août 2006, 21:46

Il te suffit de mettre un style (couleur rouge) au résultat de ta requête.
Oui merci, mais je ne sais pas comment faire pour affiché le résultat ? de cette recherche

par charabia » 14 août 2006, 21:44

Il te suffit de mettre un style (couleur rouge) au résultat de ta requête.

par dunbar » 14 août 2006, 21:38

alors voici le code pour la recherche a toi de l adapter a ton site:
mysql_query("SELECT * FROM nom_de_ta_table WHERE nom_du_champ_1 LIKE '%" . htmlentities($_GET['motclef']) . "%' OR nom_du_champ_2 LIKE '%" . htmlentities($_GET['motclef']) . "%'"); 
en esperant que ca t aide ...
Merci juste un truc encore comment faire pour que le resultat s'affiche soit en rouge soit dans une autre page ?

D'avance merci

par thehawk » 14 août 2006, 20:35

alors voici le code pour la recherche a toi de l adapter a ton site:
mysql_query("SELECT * FROM nom_de_ta_table WHERE nom_du_champ_1 LIKE '%" . htmlentities($_GET['motclef']) . "%' OR nom_du_champ_2 LIKE '%" . htmlentities($_GET['motclef']) . "%'"); 
en esperant que ca t aide ...

par dunbar » 14 août 2006, 20:12

si je comprend tu veux faire une recherche dans ta base de donnees c ca ?
OUi :lol: