Warning: (script php)

Salut a tous les specialistes.
suite a une requete, j'ais l'erreur suivante:
Warning: Supplied argument is not a valid MySQL result resource in page2.php on line 67
Aucun prénom masculin enregistré pour cette lettre
Si je regarde la ligne 67, voici ce que j'ai:
$res = mysql_numrows($req);
sur http://txiki.free.fr/origine_noms, au milieu de la page se trouve lelien "prenoms mythologiques qui lance le script de page_2.php
Je coche le bouton radio du A, puis celui de Masculin et enfin Rechercher. (il y a 8 prénoms commençant par A et masculins dans cette catégorie).

merci infiniement pour votre aide.  ;-))
http://abarka.free.fr

2 réponses

  1. chtite info
    si tu effectue une requete mysql du style
    $row=mysql_query("UPDATE `table` SET `champ`=expr WHERE `champ`=valeur");
    puis que tu verifie le nombre de résultats
    $res=mysql_num_rows($row);
    bé tu auras ton message "Warning: Supplied argument is not a valid MySQL result resource in page2.php"

    La raison est simple: $row ne contient pas des resultats mais un booléen (dans ce cas la)...

    donc $row contient soi une valeur "true" ou "false" (booleen), soit les results de ta requete
    du coup, tu peut tester

    //effectuer requete
    $row=mysql_query(...);
    if ($rows)
    {
    $res = mysql_numrows($req);
    ...
    }
    else
    echo"ta requete ne fonctionne pas!";

    INFO:
    ton erreur est souvent due à la non protection de noms de champs de table par des `.
    0
    1. Contributeur
      Salut ghys,
      Quand tu parle de non protection de nom de champ de table, j'imagine que tu veux parler du back slash avant une cote ? Ce n'est pas le cas pour ma
      merci pour le tuyau. ! ;-))
      http://abarka.free.fr
      0
    2. Contributeur
      Salut ghys,
      Quand tu parle de non protection de nom de champ de table, j'imagine que tu veux parler du back slash avant une cote ? Ce n'est pas le cas pour ma table. Par contre il y a des caractères avec des tildes (~), accents circonflexes (^). Font-ils partis des caractères réservés a PHP ?
      As-tu le moteur de recherche http://txiki.free.fr/origine_noms.php3 (prénoms mythologiques)
      Je t'envoie par mail le script complet, si tu a l'extreme amabilité d'y jeter un coup d'oeil.
      merci encore infiniement pour votre aide précieuse ;-))
      http://abarka.free.fr
      0
  2. Webmaster
    Bonjour txiki,
    D'une part la fonction mysql_numrows s'écrit mysql_num_rows,
    d'autre part elle prend comme argument non pas la requête mais le résultat de la requête :

    $link = mysql_connect("localhost", "username", "password");
    mysql_select_db("database", $link);

    $result = mysql_query("SELECT * FROM tableMaTABLE", $link);
    $num_rows = mysql_num_rows($result);

    0
    1. Contributeur
      Merci beaucoup mais je suis vraiment un bleu en matiere de programmation.
      Dois-je écrire les 4 lignes et surtout à quel endroit.
      $db = mysql_connect($host, $ident, $pass);
      mysql_select_db(prenoms, $db);
      ci-dessus les lignes 23 et 24 du script
      ce qui ne correspond pas tout a fait a ce que tu ecrit (le script n'est pas de moi)
      <?
      if($lettre AND $sexe){
      $req = mysql_query("select * from recherche where sexe='$sexe' and prenom LIKE '$lettre%' order by prenom");
      $res = mysql_numrows($req);
      if($res!=0){
      print("
      <div align='center'>
      <form name='prenoms'>
      <select name='prenoms' onChange=\"MM_jumpMenu('parent',this,1)\">
      <option value='page2.php' selected>Prénoms</option>
      ");
      ci-dessus les lignes 64 a 74
      si tu veux, je t'envoi le script complet si peux me regarder ça, ce serait vraiment cool.
      merci pour le tuyau. ! ;-))
      http://abarka.free.fr
      0