Page 1 sur 2 12 DernièreDernière
Résultats de 1 à 10 sur 17

Sujet : problème mysql_num_rows()

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    28

    problème mysql_num_rows()

    Bonsoir tout le monde j\'ai un ptit blocage dans un script sous easyphp1.7 est ce que quelqu\'un aurait une idée
    voila mon script:
    Code:
    <?php
    if(empty($_POST[\"interprete\"]) && empty($_POST[\"zik\"]) && empty($_POST[\"aeb\"]))
    {
    print(\"<center>entrez au moin une valeur</center>\");
    }
    elseif(empty( $_POST[\"zik\"] ) && empty( $_POST[\"aeb\"] ))
    {
    $connexion = mysql_connect(\"localhost\",\"root\",\"\");
    $db=mysql_select_db(\"shelko\",$connexion);
    $resultat = mysql_query(\"SELECT interprete,zik,liens,aeb FROM `interpretes`WHERE interprete =\".$_POST[\'interprete\'].\"\",$connexion);
    $nb=mysql_num_rows($resultat);
    $a=0;
    while($a<$nb)
    {
    $interprete=mysql_result($resultat,$a,\"interprete\");
    $zik=mysql_result($resultat,$a,\"zik\");
    $liens=mysql_result($resultat,$a,\"liens\");
    $aeb=mysql_result($resultat,$a,\"aeb\");
    echo \"interprete zik liens aeb\";
    $a++;
    }
    }
    ?>
    et voici le message d\'erreur qui l\'accompagne:
    warning: mysql_num_rows(): supplied argument is not a valid MYSQL result resource in c:\\... on line 11
    Donc je me repete mais si quelqu\'un a une idée qu\'il ne se gène pas :wink:

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    1 169
    Bonjoir !!
    Ben deja, je pense que l\'erreur vient de ta requete

    Remplace la ligne par ca : (ta as oublier des guillement simple)

    Code:
    $resultat = mysql_query(\"SELECT interprete,zik,liens,aeb FROM `interpretes`WHERE interprete=[col=#FF0000]\'[/col]\".$_POST[\'interprete\'].\"[col=#FF0000]\'[/col]\",$connexion)
    A tous les membres, dite non à la (drogue...) sms-mania !

    Avant de poster, vérifiez si la réponse n'est pas dans la FAQ ou un tutorial.

    Je suis actuellement http://www.bencastricum.nl/msn/statu...83aaf40bdb.png sur MSN

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    essai avec ça :

    Code:
    $MaVariable =  $_POST[\'interprete\'];
    $resultat = mysql_query(\"SELECT interprete, zik, liens, aeb FROM interpretes WHERE interprete = \'$MaVariable\' \",$connexion);
    Si l\'erreur n\'est pas résolu, le problème vient de ta requete SQL en elle même, un champs qui n\'existe pas par exemple. ou que le champs interprete est un INT, dans ce cas il ne prend pas de \" \' \".
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    synchro lain lol
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    28
    j\'ai essayé ce que vous m\'avez dis mais ca ne fonctionne pas mais va requete select fonctionne c\'est la ligne suivante qui ne fonctionne pas.La requete select je l\'ai testé à part avec php admin
    ops:

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    non non, c\'est ta requete qui n\'est pas bonne, un petit conseil de test que je fais souvent :

    je repart sur le script que je t\'avais donné :

    Code:
    $MaVariable =  $_POST[\'interprete\'];
    
    echo \"
    <br><br>
    
    SELECT interprete, zik, liens, aeb FROM interpretes WHERE interprete = \'$MaVariable\' 
    
    <br><br>\";
    Voila sur ta page tu va voir apparaitre ta requete SQL, maintenant tu tu fé copier/coller dans PhpMyAdmin, et tu regarde l\'erreur qu\'il te renvoi, ensuite tu nous dit ça :wink:
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  7. #7
    Visiteur MP
    Visiteur MP
    La solution est dans les \' à la place des \" :

    if(empty($_POST[\"interprete\"]) && empty($_POST[\"zik\"]) && empty($_POST[\"aeb\"]))

    à remplacer par :
    if(empty($_POST[\'interprete\']) && empty($_POST[\'zik\']) && empty($_POST[\'aeb\']))

    et

    elseif(empty( $_POST[\"zik\"] ) && empty( $_POST[\"aeb\"] ))

    à remplacer par :
    elseif(empty( $_POST[\'zik\'] ) && empty( $_POST[\'aeb\'] ))


    :wink:
    ++

  8. #8
    Membre MP
    Inscrit
    août 2013
    Messages
    2 185
    remplaces ton mysql_num_rows par mysql_numrows :roll: :wink: :roll:

    mysql_num_rows sert à compter le nb de colonnes d\'une table, mysql_numrows le nb d\'enregistrements trouvé par la requete :roll: :wink: :roll:
    Spirit - modérateur casu ^-^\'

  9. #9
    Membre MP
    Inscrit
    août 2013
    Messages
    2 538
    nan, nan pas d\'accord spirit . Mysql_num_rows() sert a compté le nb d\'enregistrement ... je l\'utilise constament donc ...
    Admin retraité du site MoteurProg.Com" la meilleur façon de remercier est de pouvoir aider les autres à son tour !! "http://www.moteurprog.com

  10. #10
    Visiteur MP
    Visiteur MP
    comme les autres je confirme que ton erreur viens de ta requete MySQL qui comporte une erreur.

    Et il y a en effet une erreur dans ta requete qui a deja ete mantionné, il manque des guillemets simples autour de la valeur que doit avoir interprete.
    cette erreur n\'est peut etre pas la seule, mais c\'est sur que cet oublis cause une erreur.


    De plus j\'ai pu remarquer dans ton script une petite erreur.

    apres avoir fait ta requete, tu compte le nombre de resultats que tu obtiens, puis tu fais une boucle se repetant ce nombre de fois, afin d\'afficher les resultat avec la fonction mysql_num_row().

    or cette fonction n\'est pas tres rapide.
    Il est nettement plus rapide d\'utiliser une fonction comme mysql_fetch_assoc(), mysql_fetch_array(), mysql_fetch_object(), ou mysql_fetch_row().

    toutes ces fonctions marchent sur me meme principe, c\'est juste la forme des variables retournés qui change.

    ces fonction retourne a chaque fois que tu l\'utilise les resultat de la prochaine ligne de resultat.
    ainsi si tu utilise une de ces fonction comme condition de ta boucle while, tu obtiens une boucle passant en revu l\'ensemble de ton resultat.

    $variable = mysql_fetch_assoc();
    donne une variable comme ceci :
    $variable[\'nom de colonne\'];

    $variable = mysql_fetch_row();
    donne une variable comme ceci :
    $variable[\'numero de la colonne\'];

    $variable = mysql_fetch_array();
    donne une variable contenant a la fois les resultats avec le numero de colonne et avec le nom de colonne :
    $variable[\'numero de la colonne\'];
    ET
    $variable[\'nom de colonne\'];
    Il y a donc dans ce resultat deux fois chaque colonne !!! donc a eviter pour utiliser avec foreach($variable as $val) par exemple.

    $variable = mysql_fetch_object();
    donne une variable comme ceci :
    $variable->nom
    avec nom qui est le nom de la colonne


    Avec ces fonctions tu peux donc obtenir tes resultats de la maniere suivante :

    Code:
    $connexion = mysql_connect(\"localhost\",\"root\",\"\");
    
    $db=mysql_select_db(\"shelko\",$connexion);
    
    $resultat = mysql_query(\"SELECT interprete,zik,liens,aeb FROM `interpretes`WHERE interprete =\'\".$_POST[\'interprete\'].\"\'\",$connexion);
    
    while($row = mysql_fetch_assoc($resultat))
        {
        $interprete = $row[\'interprete\'];
    
        $zik = $row[\'zik\'];
    
        $liens = $row[\'liens\'];
    
        $aeb = $row[\'aeb\'];
        }
    Gexti : le fait d\'utiliser des guillement double dans les tableau ne cause aucune erreur a ma connaissance. Je n\'ai en tout cas jamais rencontré ce probleme alors que j\'utilisais avant toujours les doubles. et on peu meme trouver dans la doc officiel de php des exemple d\'utilisation de guillemets doubles pour les tableaux.

Page 1 sur 2 12 DernièreDernière

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!