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 :

effectuer recherche à partir d'une liste deroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Points : 53
    Points
    53
    Par défaut effectuer recherche à partir d'une liste deroulante
    Bonjour
    je veux effectuer une recherche sur un critère fournit par une liste déroulante.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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    		<title>Connexion</title>
    	</head>
    	<?php
    	$test = @mysqli_connect('localhost', 'ROOT', '', 'test');
    if (!$test) {  
      die('Connection failed');
      }
    $query=mysqli_query($test,'SELECT nom, prenom, commune FROM `membres` WHERE nom='.$_GET['membre']);
    $nbreres=mysqli_num_rows($query);
    if ($nbreres > 0) {
        while ($res=mysqli_fetch_assoc($query)) {
        echo 'vous avez sélectionné'.' '.$res[nom].' '.$res[prenom].' '.'ce membre réside à'.$res[commune];
        }
    } else {
        echo 'Aucun résultat'; 
    }
    ?>
     
    </html>
    j'ai le message d'erreur suivant:
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /opt/lampp/htdocs/trouve.php on line 14
    Aucun résultat

    la ligne 14 de mon éditeur est:$nbreres=mysqli_num_rows($query);
    voici le code de ma liste deroulante
    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
    <form action="trouve.php" method="get">
     
     
    		<?php
      mysql_connect('localhost', 'ROOT', '') ; // Ou "root" ??
      mysql_select_db('test') ;
      $sql = 'SELECT nom FROM membres' ;
      $rs = mysql_query($sql) or exit(mysql_error( )) ;
    ?>
    <select name="membre">
    <p> 
      <?php while ( $row = mysql_fetch_assoc($rs) ) : ?>
        <option><?php echo htmlspecialchars($row['nom']) ?></option>
      <?php endwhile ?>
    </select> 
      <input type="submit" value="chercher"  /> <input type="reset" /></p>
     </form>
    	</html>
    J'aimerais bien resoudre ce problème.
    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query=mysqli_query($test,"SELECT nom, prenom, commune FROM `membres` WHERE nom='".$_GET['membre']."'")or die(mysql_error());
    $nbreres=mysqli_num_rows($query);
    remplace les lignes 13/14 par ça
    Stay in Bed .. Save Energy

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    La requête SQL est sûrement fausse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT nom, prenom, commune FROM `membres` WHERE nom='.$_GET['membre']
    Je suppose que nom est un champ text, si c'est le cas tu dois délimiter la valeur comparée ($_GET['membre']) avec des ' ou des ".

    Important : dans une page tu utilises mysqli, dans l'autre mysql. Ces deux APIs ne fonctionnent pas du tout de la même manière : choisis-en une et tiens t'en !!
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Points : 53
    Points
    53
    Par défaut
    oui nom est 1 champ de type texte
    merci ca marche

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2009, 09h56
  2. Réponses: 30
    Dernier message: 09/01/2009, 09h20
  3. Afficher choix a partir d'une liste deroulante
    Par amne26 dans le forum IHM
    Réponses: 11
    Dernier message: 22/09/2008, 19h20
  4. Moteur de recherche à partir d'une liste de critères
    Par ionnette dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 27/06/2008, 09h30
  5. Réponses: 3
    Dernier message: 19/05/2005, 17h52

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