begin process at 2012 05 28 23:25:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Case "Recherche"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Case "Recherche"

samedi 4 septembre 2010 à 23:43:01 | Case "Recherche"

squago

Bonjour à tous,

Une fois de plus, je suis au bord de la crise de nerfs. Depuis ce matin, j'essaie de faire un script pour que les visiteurs de mon site puissent afficher les différents articles qu'ils souhaitent, en entrant tout simplement un ou des mots dans une case "recherche", toute bête, comme on en voit sur 99,99 des sites.
Voici ce script html:

<form method="get" action="search.php">
<input type="submit" value="Search"/><br>
<input type="text" name="search"/>
</form>

Et le script php:

<?php

$button = $_GET['submit'];
$search = $_GET['search'];

if (!$button)
echo "Vous n'avez pas entré de mot.";
else
{
if (strlen($search)<=3)
echo "Pas assez de caractères.";
else
{
echo "Vous cherchez <b>$search</b><hr size='1'>";

//connection à la base de données
mysql_connect('******', '*****', '****');
mysql_select_db('*******');

//explode
$search_exploded = explode(" ",$search);

foreach($search_exploded as $search_each)
{
//contruction du query
$x++;
if ($x==1)
$construct .= "keywords LIKE '%$search_each%'";
else
$construct .= " OR keywords LIKE '%$search_each%'";
}
//echo en construction

$construct = "SELECT 'libelle_produit','marque','poids' FROM catalogue WHERE $construct";
$run = mysql_query($construct);

$foundnum = mysql_num_rows($run);
if ($foundnum==0)
echo "Aucun résultat trouvé.";
else
{
echo "$foundnum résultat(s) trouvés!<p>";

while ($runrows = mysql_fetch_assoc($run))
{
//Ce qui donne le résultat :
$libelle = $runrows['libelle_produit'];
$marque = $runrows['marque'];
$poids = $runrows['poids'];

echo"
<b>$libelle</b><br>
$poids<br>
$marque<p>";
}

}

else{
echo "Aucun produit trouvé!";
}
}
}
?>

Quoi que je fasse, quand je le teste, l'unique réponse est : "Vous n'avez pas entré de mot."

C'est tout. J'ai fait un mixe de l'anglais et du français, car j'ai trouvé 2 tutos sur "youtube", j'espère qu'à force de retourner le code dans tous les sens, je n'aie pas fait trop de salade, mais je vous avoue qu'à l'heure qu'il est, je suis un petit peu fatigué, , et vous seriez sympas de m'ouvrir les yeux...


Merci d'avance à ceux qui seront aimables d'y contribuer.

Squago
dimanche 5 septembre 2010 à 02:43:55 | Re : Case "Recherche"

kohntark

Membre Club
Salut,

Il manque name="submit" pour ton bouton submit.


Cordialement,


Kohntark -
dimanche 5 septembre 2010 à 09:14:47 | Re : Case "Recherche"

squago

Bonjour Kohntark,

Je te remercie beaucoup pour ta réponse. J'ai vite fait l'essai, mais j'ai eu directement au premier essai, ce message d'erreur :

Parse error: syntax error, unexpected T_ELSE in /home/www/d0875257c57e479c840885858f092547/web/search.php on line 78

La ligne 78 correspond au dernier else, juste avant :''echo "Aucun produit trouvé!"; ''.
J'ai essayé, avant de poster ma demande d'hier soir, plusieurs fois, et j'ai fait beaucoup de changements pour trouvé ce qui n'allait pas, et durant mes recherches d'hier, j'ai souvent eu ce message au niveau de ce else.
Ce qui m'a fait tourner en rond toute la journée, et encore maintenant.Je ne vois vraiment pas ce qui cloche.

Si tu voyais autre chose?...


Merci sincère.

Squago

dimanche 5 septembre 2010 à 10:36:25 | Re : Case "Recherche"

kohntark

Membre Club
Tu as 2 else qui se suivent !!


echo "Aucun résultat trouvé.";
else
{

et

else{
echo "Aucun produit trouvé!";
}

Forcément c'est une erreur puisque le dernier else ne serait pas exécuté.
Ce dernier else semble ne servir à rien :
echo "Aucun résultat trouvé."; === echo "Aucun produit trouvé!";

Par ailleurs :
- pense à toujours indenter ton code et à utiliser la balise code

- je trouve que ta manière d'écrire tes if / else n'est vraiment pas top.
Le fait de ne pas mettre d'accolades sur une structure simple n'est pas un problème. Par contre dès qu'il y a des imbrications ça devient fort peu lisible.
Menfin c'est mon avis personnel à moi hein

Code PHP :
<?php

$button = $_GET['submit'];
$search = $_GET['search'];

if (!$button) {
    echo "Vous n'avez pas entré de mot.";
} else {
    if (strlen($search)<=3) {
        echo "Pas assez de caractères.";
    } else {
        echo "Vous cherchez <b>$search</b><hr size='1'>";

        //connection à la base de données
        mysql_connect('******', '*****', '****');
        mysql_select_db('*******');

        //explode
        $search_exploded = explode(" ",$search);

        foreach($search_exploded as $search_each){
        //contruction du query
        $x++;
        if ($x==1) {
            $construct .= "keywords LIKE '%$search_each%'";
        } else {
            $construct .= " OR keywords LIKE '%$search_each%'";
        }
        //echo en construction

        $construct = "SELECT 'libelle_produit','marque','poids' FROM catalogue WHERE 

        $construct";

        $run = mysql_query($construct);

        $foundnum = mysql_num_rows($run);
        
        if ($foundnum==0) {
            echo "Aucun résultat trouvé.";
        } else {
            echo "$foundnum résultat(s) trouvés!<p>";

            while ($runrows = mysql_fetch_assoc($run)){
                //Ce qui donne le résultat :
                $libelle = $runrows['libelle_produit'];
                $marque = $runrows['marque'];
                $poids = $runrows['poids'];

                echo "

                <b>$libelle</b><br>
                $poids<br>
                $marque<p>";

            }
        }
    }
}
?>



Ne trouves tu pas que c'est bien plus lisible ainsi ?

Cordialement,

Kohntark -


Cette discussion est classée dans : mysql, echo, search, libelle, construct


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec recherche de plusieurs mots-clés [ par cyse ] Bonsoir,J'essai de faire un moteur de recherche en interne pour un site.Je ne suis pas super doué en php encore et je n'arrive pas à cerner quelquecho probléme [ par termifr ] $pagedemande=$_GET['page'];$nombreactu='5';mysql_connect("xxx", "xxx", "xxx");mysql_select_db("xxx");$retour = mysql_query("SELECT COUNT(*) AS nbre_en autre probléme lecture mysql [ par termifr ] $pagedemande=$_GET['page'];$nombreactu='5';mysql_connect("xxx", "xxx", "xxx");mysql_select_db("db192993600");$retour = mysql_query("SELECT COUNT(*) AS Problème avec date [ par Burnside ] Bonjour,Je désirerai savoir comment bien comparer deux dates, car j'ai essayé plusieur scripts mais rien ne va.Mon souhait :j'ai dans ma base mysql un SQL [ par dudu134 ] Dudu134Bonjour à tous le forum,Voici mon code :$query = mysql_query('SHOW COLUMNS FROM nom_logiciels') or die(mysql_error());while ($row = mysql_fetch probleme pour recuperer les valeurs de mon menu déroulant [ par kensonlia ] bon voila j'ai un script php d'insertion dans une base je fais des tests  mais chaque fois elle m'affiche un message d'erreur que j'ai definie je vois Exploiter formulaire checkbox [ par flopad ] Bonjour tout le monde.J'ai un formulaire avec des checkbox. J'affiche ce formulaire dans un tableau dont les données sont des infos remontées de ma bd Super débutant MSQLi [ par ydu ] Bonjour tout le monde,Avant tout je tiens a vous préciser, je suis un SD "Super Débutant". En effet, je me suis fourni PHP & Mysql pour les nuls.Me vo commentaire [ par csmgroup ] Bonjour à tous,je viens vers vous car j'ai un petit soucis.J'ai instalé un script de news-commentaires, au niveau base de données, tout fonctionne. Le envoi de données avant la fin du script [ par szambaux ] Bonjour, j'ai écrit un script php qui est loader avec un LoadVariable depuis une animation flash, le code est le suivant[code]#si correspondant libre 


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales