Problème avec Mysql_num_rows

Par Tchoupi, il y a 13 ans


Base de données MySQL

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, il y a 13 ans

Personne pourrait m'aider ?!

Gregory, il y a 13 ans

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

Tchoupi, il y a 13 ans

C'est à dire ?

Gregory, il y a 13 ans

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, il y a 13 ans

Voici le la réponse à la requete :

SELECT * FROM users WHERE login like 'test%' ORDER BY date DESC
Gregory, il y a 13 ans

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

Tchoupi, il y a 13 ans

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

Gregory, il y a 13 ans

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, il y a 13 ans

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.

Tchoupi, il y a 13 ans

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.