Bonsoir,

J'ai un problème avec Mysql_num_rows, à chaque fois que je voudrais m'en servir ça plante...
Voici le code où je l’interprète et voici l'erreur :

<?php
                $nomCompte = "";

            if (isset($_POST'submit']))
            {
                $nomCompte = $_POST'pseudo'];

                if(strlen($nomCompte) != 0)         
                {
                    $retour = mysql_query("SELECT * FROM users WHERE login like '".$nomCompte."%' ORDER BY date DESC");
                }
                else                        
                {
                    $retour = mysql_query('SELECT * FROM users ORDER BY id DESC');
                }
            } ?>
            <table width="94%" style="margin:8px 0px 8px 20px;">
                <form action="<?php echo ''.$lien_admin_membre.'' ?>" method="post">
                <tr>
                    <td><input type="text" name="pseudo" value="<?php echo ''.$nomCompte.'' ?>" ></td>
                    <td><input type="submit" name="submit" class="submit" ></td>
                </tr>
                </form>
            </table>
<img src="<?php echo ''.WEBROOT.''.$url_global.'' ?>hr.png" class="hr"/>
                <center>
                <table>
                    <tr>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><b>Nom</b></td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><b>Rang</b></td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><b>Crédit</b></td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><b>Date d'Inscription</b></td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><b>Premium</b></td>
                    </tr>
            <?php
if(isset($_POST'submit']) AND mysql_num_rows($retour) != 0){
while ($data = mysql_fetch_array($retour)) { ?>
                    <tr>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><?php echo $data'login'] ?> </td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><?php echo $data'name'] ?> </td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><?php echo $data'credit'] ?> </td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><?php echo $data'date_inscription'] ?> </td>
                        <td style="border-bottom:1px solid #bfb59d;border-right:1px solid #bfb59d;"><center><?php if($data'premium'] == "1"){echo '<img src="'.WEBROOT.''.$url_devtool.'clean.png" class="devtool"/>'; }else {echo '<img src="'.WEBROOT.''.$url_devtool.'delete.png" class="devtool"/>';} ?></center></td>
                    </tr>
                    <?php }} ?>

Et l'erreur quand je fais la recherche :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\memento\pages\admin\membre.php on line 49

Je suis pas encore très très doué avec toutes les fonctions de mysql, mais là je sais pas du tout, car j'utilise la meme chose pour mon autre site et ça fonctionne parfaitement...

Cordialement,
Tchoupi.

10 réponses


Tchoupi
Auteur
Réponse acceptée

Toujours les mêmes erreurs... Sur le site, a chaque fois que j'utilise la fonction mysql_num_rows ça plante, j'ai changé intégralement le code donc maintenant c'est bon.
Merci tout de même pour l'aide.

Tchoupi
Auteur

Personne pourrait m'aider ?!

Essayes d'afficher ta requête pour voir si y a pas une erreur dedans

Tchoupi
Auteur

C'est à dire ?

Au lieu de faire

$retour = mysql_query("SELECT * FROM users WHERE login like '".$nomCompte."%' ORDER BY date DESC");

décomposes la requête

$sql = "SELECT * FROM users WHERE login like '".$nomCompte."%' ORDER BY date DESC";
echo $sql;
$retour = mysql_query($sql);
Tchoupi
Auteur

Voici le la réponse à la requete :

SELECT * FROM users WHERE login like 'test%' ORDER BY date DESC

Et si tu exécutes cette requête dans phpmyadmin tu n'as pas d'erreur?

Tchoupi
Auteur

Non elle ne m'affiche pas d'erreur...

ecris ça $retour = mysql_query($sql) or die(mysql_error());
Car je pense que tu as vraiment une erreur au niveau de ta requête

Tchoupi
Auteur

Bah sur mon deuxième site, j'ai la même requête et elle fonctionne très bien justement.
J'utilise justement pour mes deux sites la même base de donnée.

J'essaye tout de même ce que tu m'as dis de faire, je te tiens au courant.