WAMP & mysql_num_rows

WAMP & mysql_num_rows - PHP - Programmation

Marsh Posté le 17-11-2008 à 08:00:41    

Bonjour.
 
Je suis en train de dupliquer un site qui marche parfaitement sur le serveur de mon hebergeur, en local sur mon PC grace à WAMP
 
En local, la totalité du site marche tres bien (execution des requetes, sessions...)
 
sauf dès que je fais appel à la fonction mysql_num_rows()
 
qui renvoit systematiquement l'erreur :  
 

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


 
j'ai cherché sur le net avec WAMP + mysql_num_rows() et je n'ai pas trouvé de solution.
 
Une idée?
 
merci

Reply

Marsh Posté le 17-11-2008 à 08:00:41   

Reply

Marsh Posté le 17-11-2008 à 09:26:50    

echo mysql_error() juste avant.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 17-11-2008 à 09:37:07    

Visiblement il ne marche pas *si* parfaitement ... regarde aussi dans les logs, si ça se trouve ton hébergeur a désactivé les messages d'erreur, c'est pour ça que tu crois qu'il marche si bien ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 17-11-2008 à 09:50:06    

Le test conditionnel ('if' avec test de la valeur mysql num rows) marche bien chez mon hebergeur, lorsque il n'y a pas d'enregistrement, ca fait bien ce qui est demandé, etc... et s'il y a des enregistrement, ca execute bien les actions souhaitées dans ce cas.
 
je vais néanmoins regarder du coté de mysql_error() tel vous me le conseillez, je vous tiendrais au courant.
 
merci


Message édité par decomposee le 17-11-2008 à 10:16:36
Reply

Marsh Posté le 17-11-2008 à 10:19:17    

déjà j'ai comparé les deux fichiers php (hebergeur et local) : ce sont bien les memes. Pas d'erreur à ce niveau là.
 
Concernant mysql_error() placé juste avant mysql_num_rows(), dans les deux cas (local et chez hebergeur), ca ne renvoit rien; donc pas d'erreur (cette fonction, selon la doc, renvoit une chaine de caractere vide si la derniere requete mysql n'a pas engendré d'erreur).
 

Reply

Marsh Posté le 17-11-2008 à 10:36:16    

On peut voir un peu de code ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 17-11-2008 à 10:53:09    

$requete="SELECT * from genres WHERE ( nom_genre='".$data['genre']."')";
$resultat=mysql_query($requete);
$donnees=mysql_fetch_assoc($resultat);
echo mysql_error();
if (mysql_num_rows($resultat)==0)
{
             echo "Votre liste est vide";
}  
else  
{
             echo "votre liste n est pas vide";
}

Reply

Marsh Posté le 17-11-2008 à 11:11:03    

j'oublais de préciser que c'est un extrait du code,
 
la connexion a bien été initialisée avec mysql_connect et mysql_select_db:
 
 

Reply

Marsh Posté le 17-11-2008 à 11:12:44    

Pourquoi tu fais ton mysql_fetch_assoc avant le mysql_num_rows ?
C'est pas super logique, et ça peut expliquer le problème pour peu que certaines version de php ou de je ne sais quoi modifie la ressource$resultat lors de l'appel de mysql_fetch_assoc (je ne sais pas si c'est le cas, ce n'est qu'une suggestion :o)


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 17-11-2008 à 11:16:45    

(j'ai aussi essaye apres mysql_query : or die(...) qui ne renvoit pas d'erreur).
 
je vais essayer de tester avec la remarque de kao98 qui est pertinente

Reply

Marsh Posté le 17-11-2008 à 11:16:45   

Reply

Marsh Posté le 30-05-2011 à 15:00:05    

Bonjour, je sais que le sujet date de longtemps... Mais si sa peux aider quelqu'un, voici un script avec num rows qui fonctionne parfaitement sous wamp et sur un hébergeur :  

Code :
  1. <?php
  2. // Appel de la fonction connexion
  3. include("connexionbase.php" );
  4. // Récupération des valeurs du formulaire
  5. $Nom = $_POST['Nom'];
  6. $Rue = $_POST['Rue'];
  7. $Codepostal = $_POST['Code_postal'];
  8. $Ville = $_POST ['Ville'];
  9. $Telephone = $_POST['Telephone'];
  10. $E_mail = $_POST['E_mail'];
  11. $Motpasse = $_POST['Mot_de_passe'];
  12. $requete1  = "SELECT * FROM proprio WHERE MelProprio = '$E_mail';";
  13. $resultat1 = mysql_query($requete1, $maConnexion);
  14. $nb1 = mysql_num_rows($resultat1);
  15.   if ($nb1 == 1)
  16.   {
  17.   echo "Echec de l'inscription, cette adresse email est déja utilisée";
  18.   }
  19.   else
  20.   {
  21. //Ajoute le nouvel utilisateur a la base de données
  22.   $requete  = "INSERT INTO Proprio VALUES ('$E_mail', '$Nom', '$Rue', '$Codepostal', '$Ville', '$Telephone', '$Motpasse');";
  23.   $Resultat = mysql_query ($requete, $maConnexion);
  24.   echo "Inscription réussite";
  25.   }
  26. ?>

Reply

Marsh Posté le 01-06-2011 à 13:13:27    

oui, effectivement, ça date, et ton code aussi (manque la protection des variables, et mysql_query devient de + en + obsolète).


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed