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

PHP & Base de données Discussion :

Moteur de recherche [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut Moteur de recherche
    bonjour à tous
    mon moteur de recherche fonctionne mais je n'arrive pas à afficher le else (aucun résultat)
    voici mon code

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" href="dist/css/bootstrap.css"/>
    <link rel="stylesheet" href="dist/css/mystyle.css"/>
     
    <title>UFC</title>
    </head>
    <body>
    <P style="text-align:center"><img src="img/ufc.JP"></P>
     <div>
     <H1 style="text-align:center">RECHERCHER</H1>
    </div>
    <br>
    <div class="container">
    <div class="row">
    <div class="col-lg-2 col-lg-offset-5">
    <form id="search">
    <div class="input-group"></div>    
    <form method="GET" action="liste5.php">
    <input type="text" class="form-control" name="search"tex-align="center" placeholder="Rechercher...">
    <br>
    <br>
    <input style="align:center" button type="submit" class="btn btn-success btn-lg btn-block" value="GO"</button>
    </form>
    </center> 
    </div>
    </div>
    </div>
    </div>
    <?php
    try
    {
    $db = new PDO('mysql:host=localhost;dbname=ufc', 'root', ''); 
    }
    catch(Exception $e)
    {
        die('erreur:'.$e->getMessage());
    }
    if(isset($_GET['search']) && $_GET['search'] != NULL) // on vérifie d'abord l'existence du GET et aussi si la requete n'est pas vide.
    {
    $result=$db->prepare("SELECT * FROM flyweight where nom like '%$_GET[search]%'" ) or die(print_r($db->errorInfo())); 
    $result->execute(array($_GET['search']));
    $nb_resultats = mysql_num_rows($result); 
    if($nb_resultats != 0){
        echo 'nous avons trouvé des resultats';
     
     
    while ($row = $result->fetch()) 
        {//affiche les résultats
         echo'<h3>Résultats de la recherche :</h3>';    
        ?>
        <p>
        <strong>nom : </strong>:<?php echo    $row ['nom'];?> <br />
         <strong>taille :  </strong><?php echo $row ['taille'];?> CM<br />
         <strong>poids : </strong><?php echo $row ['poids'];?> KG<br />
         <img src="<?php echo $row['photos']; ?>" alt="image"/>
        </p>
     <?php
    }
    /*else {
        echo 'aucun résultats';
    }*/} 
    $result->closeCursor();
    }
    ?> 
    <script type="text/javascript" src="/dist/js/jquery-2.1.0.min.js"></script>
    <script type="text/javascript" src="/dist/js/bootstrap.js"></script>
    <script type="text/javascript" src="/dist/js/myscript.js"></script>
    </body>
    </html>

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    Sauf erreur de ma part, il y a des commentaires autours de ta condition else donc c'est normal que rien ne s'affiche.

    P.S. : utilise la balise code (#) quand tu mets du code source dans un message pour la lisibilité, merci.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    voila le code avec else mais il me renvoie le message d'erreur suivant
    Warning: mysql_num_rows() expects parameter 1 to be resource, object given in C:\wamp\www\ufc\liste5.php on line 44
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" href="dist/css/bootstrap.css"/>
    <link rel="stylesheet" href="dist/css/mystyle.css"/>
     
    <title>UFC</title>
    </head>
    <body>
    <P style="text-align:center"><img src="img/ufc.JP"></P>
     <div>
     <H1 style="text-align:center">RECHERCHER</H1>
    </div>
    <br>
    <div class="container">
    <div class="row">
    <div class="col-lg-2 col-lg-offset-5">
    <form id="search">
    <div class="input-group"></div>	
    <form method="GET" action="liste5.php">
    <input type="text" class="form-control" name="search"tex-align="center" placeholder="Rechercher...">
    <br>
    <br>
    <input style="align:center" button type="submit" class="btn btn-success btn-lg btn-block" value="GO"</button>
    </form>
    </center> 
    </div>
    </div>
    </div>
    </div>
    <?php
    try
    {
    $db = new PDO('mysql:host=localhost;dbname=ufc', 'root', ''); 
    }
    catch(Exception $e)
    {
    	die('erreur:'.$e->getMessage());
    }
    if(isset($_GET['search']) && $_GET['search'] != NULL) // on vérifie d'abord l'existence du GET et aussi si la requete n'est pas vide.
    {
    $result=$db->prepare("SELECT * FROM flyweight where nom like '%$_GET[search]%'" ) or die(print_r($db->errorInfo())); 
    $result->execute(array($_GET['search']));
    $nb_resultats = mysql_num_rows($result); 
    if($nb_resultats != 0){
    	echo 'nous avons trouvé des resultats';
     
     
    while ($row = $result->fetch()) 
    	{//affiche les résultats
    	 echo'<h3>Résultats de la recherche :</h3>';	
    	?>
    	<p>
    	<strong>nom : </strong>:<?php echo	$row ['nom'];?> <br />
    	 <strong>taille :  </strong><?php echo $row ['taille'];?> CM<br />
    	 <strong>poids : </strong><?php echo $row ['poids'];?> KG<br />
    	 <img src="<?php echo $row['photos']; ?>" alt="image"/>
    	</p>
     <?php
    }
    else {
    	echo 'aucun résultats';
    }} 
    $result->closeCursor();
    }
    ?> 
    <script type="text/javascript" src="/dist/js/jquery-2.1.0.min.js"></script>
    <script type="text/javascript" src="/dist/js/bootstrap.js"></script>
    <script type="text/javascript" src="/dist/js/myscript.js"></script>
    </body>
    </html>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut que tu revois tous les concepts de PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!empty($_GET['search'])) {
    $sth=$db->prepare("SELECT * FROM flyweight where nom like :search"); 
    $sth->execute(array(':search'=>'%' . $_GET['search'] . '%'));
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    $nb_resultats = count($result);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il faut surtout revoir la présentation du code, notamment l'indentation, ça te permettra d'y voir plus clair...

    Sauf erreur de ma part, la parenthèse ligne 60 ferme le while, c'est-à-dire que le else est définit à l'intérieur du if et ne dépend donc d'aucun if, et ça, c'est pas top.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    merci pour vos conseils et votre aide ,je travaille dessus mais je ne comprends pas le if est fermée le while aussi et j'ai ce message d'erreur
    Parse error: syntax error, unexpected T_ELSEIF in C:\wamp\www\ufc\liste5.php on line 59
    d'ou vient le problème ? la syntaxe en PDO?le mieux est il d'inclure une function ?
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" href="dist/css/bootstrap.css"/>
    <link rel="stylesheet" href="dist/css/mystyle.css"/>
    <title>UFC</title>
    </head>
    <body>
    <P style="text-align:center"><img src="img/ufc.JP"></P>
     <div>
     <H1 style="text-align:center">RECHERCHER</H1>
    </div>
    <br>
    <div class="container">
    <div class="row">
    <div class="col-lg-2 col-lg-offset-5">
    <form id="search">
    <div class="input-group"></div>	
    <form method="GET" action="liste5.php">
    <input type="text" class="form-control" name="search"tex-align="center" placeholder="Rechercher...">
    <br>
    <br>
    <input style="align:center" button type="submit" class="btn btn-success btn-lg btn-block" value="GO"</button>
    </form>
    </center> 
    </div>
    </div>
    </div>
    </div>
    <?php
    try
    {
    $db = new PDO('mysql:host=localhost;dbname=ufc', 'root', ''); 
    }
    catch(Exception $e)
    {
    	die('erreur:'.$e->getMessage());
    }
    if(!empty($_GET['search'])) {
    $sth=$db->prepare("SELECT * FROM flyweight where nom like :search"); 
    $sth->execute(array(':search'=>'%' . $_GET['search'] . '%'));
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    $nb_resultats = count($result);
    if($nb_resultats != 0){
    	echo 'nous avons trouvé des résultats'; 
    	                  }
    while ($row = $result->fetch()) 
    	{//affiche les résultats
    	 echo'<h3>Résultats de la recherche :</h3>';	
    	?>
    	<p>
    	<strong>nom : </strong>:<?php echo	$row ['nom'];?> <br />
    	 <strong>taille :  </strong><?php echo $row ['taille'];?> CM<br />
    	 <strong>poids : </strong><?php echo $row ['poids'];?> KG<br />
    	 <img src="<?php echo $row['photos']; ?>" alt="image"/>
    	</p>
    	 }  
     <?php                                              
    elseif ($nb_resultats = 0) {
    	echo 'aucun résultats';
                               }
    $result->closeCursor();
                                }
    ?> 
    <script type="text/javascript" src="/dist/js/jquery-2.1.0.min.js"></script>
    <script type="text/javascript" src="/dist/js/bootstrap.js"></script>
    <script type="text/javascript" src="/dist/js/myscript.js"></script>
    </body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Info]moteur de recherche full text en environnement j2ee
    Par ddams dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/11/2004, 19h39
  2. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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