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 :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource [Fait]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
    Bonjour 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
    72
    73
    74
    75
    76
    77
    78
    <?php
    define ("USER", "root") ;
    define ("PASSWORD", "") ;
     
    $connexion =  mysql_connect("localhost",USER,PASSWORD)
    or exit("Erreur 101") ;
     
     mysql_select_db( "aviatec" , $connexion)
    or exit("Erreur 102") ;
     
    if (isset($_POST['rechercher'])) //si on a validé le formulaire
    {
    $recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
    $mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
     
    if ($mode == "tous_les_mots")
    {
    $and_ou_or = 'AND'; //on utilisera AND dans la boucle
    }
    else
    {
    $and_ou_or = 'OR'; //on utilisera OR dans la boucle
    }
    if ($mode == "expression_exacte") //si le mode de recherche est par expression exacte
    {
    $selection_recherche = mysql_query("SELECT * FROM base_articles WHERE titre LIKE '%$recherche%' ORDER BY id DESC");
    }
    else //si le mode de recherche n'est pas par expression exacte
    {
    $mots = explode(" ", $recherche); //séparation des mots
    $nombre_mots = count ($mots); //compte le nombre de mots
    $valeur_requete = '';
    for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle on continue en augmentant le nombre de mots de 1 à chaque fois
    {
    $valeur_requete .= '' . $and_ou_or . ' titre LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valeur_requete
    }
    $valeur_requete = ltrim($valeur_requete,$and_ou_or); //suppression de AND ou de OR au début de la boucle
    $selection_recherche = mysql_query("SELECT * FROM base_articles WHERE $valeur_requete ORDER BY id DESC"); //requête avec le résultat de la boucle dedans
    }
     
    $nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
    if ($nombre_resultats == 0) //si il n'y a pas de résultat
    {
    echo 'aucun resultat.<a href="recherche.php">recommencer</a>';
    }
    else //il y a au moins un resultat
    {
    echo 'nombre de résultats: ' . $nombre_resultats . ':<br /><br />'; //nombre de résultats
    while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les resultats
    {
    echo '<strong>Numero:</strong> ' . $resultats['id'] . '<br />
    <strong>Titre:</strong> ' . $resultats['titre'] . '<br />
    <strong>Fermé:</strong> ' . $resultats['ferme'] . '<br /><br />';
    }
    echo '<a href="recherche.php">recommencer</a>';
    }
    }
    else //si on a pas validé le formulaire on l'affiche
    {
    ?>
    <form method="post" action="recherche.php">
    Votre recherche:
    <input type="text" name="recherche" />
    <br />
    Votre mode de recherche:
    <select name="mode">
    <option value="expression_exacte">Expression exacte</option>
    <option value="tous_les_mots">Tous les mots</option>
    <option value="un_mot">Au moins un mot</option>
    </select>
    <br />
     
    <input type="submit" value="Rechercher" name="rechercher" />
    </form>
    <?
    }
    mysql_close(); //deconnexion de la bdd
    ?>

    le message d'erreur suivant apparait :
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\autre panier achat\recherche2.php on line 41
    La ligne 41 est :
    $nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche

    pourquoi ma syntaxe n'est pas bonne s'il vous plait ?
    merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Points : 15 731
    Points
    15 731
    Par défaut
    tu peux suivre ce qui est expliqué là pour corriger cette erreur :
    http://php.developpez.com/faq/?page=...ysql_ressource

  3. #3
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par mathieu Voir le message
    tu peux suivre ce qui est expliqué là pour corriger cette erreur :
    http://php.developpez.com/faq/?page=...ysql_ressource
    J'ai suivi ce qui est écrit et j'ai toujours le même message d'erreur mais pourtant j'ai rajouté :
    or exit(mysql_error());

    Et si c'est ma requête qui a un problème pourquoi ?
    merci

  4. #4
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Le souci est au niveau de ta requête $selection_recherche, l'exécution de cette requête échoue et ne renvoie pas une "ressource valide", or la fonction mysql_num_rows a besoin d'une "ressource mysql valide". En clair c'est tes requêtes qui posent problème et si tu ne veux plus de ce message tu dois vérifier que la requête s'éxecute bien avant de lui appliquer la fonction mysql_num_rows ou une autre fonction du même type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if($selection_recherche)
    	$nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
    else
    	$nombre_resultats = 0;

  5. #5
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    C'est ce que je ne comprends pas pourquoi il ne la considère pas valide ? On peut bien mettre des variables...

Discussions similaires

  1. [MySQL] Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
    Par rach20032 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/10/2007, 12h52
  2. [MySQL] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Par oOBaalberithOo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/10/2007, 13h52
  3. [MySQL] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    Par farfella dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/10/2007, 11h47
  4. Réponses: 3
    Dernier message: 11/08/2007, 22h55
  5. [MySQL] Erreur mysql_num_rows: supplied argument is not a valid MySQL result resource
    Par dfournier dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/12/2006, 16h40

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