IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

mysqli_num_rows() --> erreur d'argument


Sujet :

SQL Procédural MySQL

  1. #1
    Invité
    Invité(e)
    Par défaut mysqli_num_rows() --> erreur d'argument
    Bonjour,

    Je travaille sur un site e-commerce en PHP MySQL et je rencontre un problème avec la fonction mysqli_num_rows().

    Voici un code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "select * from paniers";
    $result = mysqli_query($connexion, $query);
    if (mysqli_num_rows($result) != 1) {code d'erreur ...}
    Par contre quand je fais un update sur la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query= "update paniers set id_client=12 where id_panier=5";
    $result = mysqli_query($connexion, $query);
    if (mysqli_num_rows($result) != 1) {code d'erreur ...}
    La fonction mysqli_num_rows génère une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\MyWebSite\auth.php on line 69
    L'update est pourtant bien réalisé dans la base et 1 et une seule ligne est modifiée. Le code 1 et le code 2 sont écrits de la même façon, pourquoi le premier fonctionne et le deuxième pas? L'argument passé à la fonction est pourtant bien de type 'result' et pas un booléen?

    Merci pour votre aide.

    webrider

  2. #2
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Salut,

    Regarde bien ce que retourne mysqli_query() : http://fr.php.net/manual/fr/function.mysqli-query.php

    Pour les UPDATE, si tu veux savoir le nombre de lignes modifiées, tu peux utiliser mysqli_affected_rows().

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci Biglo,

    Mais alors pourquoi dans le premier cas ça marche et pas dans le second? Je vais remplacer la fonction par mysqli_affected_rows(), c'est une fonction à laquelle je n'ai pas pensé!

    webrider

  4. #4
    Invité
    Invité(e)
    Par défaut
    Eh bé non l'erreur retournée est axactement la même! J'ai pourtant lu et relu le code et l'erreur ne me parait pas évidente du tout... c'est certain qu'il y en a une mais où?

    Le paramètre fourni à la fonction est pourtant bien de type mysqli_result n'est-ce pas?

    webrider

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah oui, une question qui pourra peut-être aider à retrouver l'erreur...

    Je fais un query donc je devrais recevoir une réponse de type mysqli_result mais il me dit que j'ai fourni un booléen... Donc dans quelles conditions la fonction mysqli_query retourne un booléen?

    Merci!

    webrider.

  6. #6
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Tu n'as pas été lire la page que je t'ai suggérée je crois !

    Valeurs de retour (pour mysqli_query)

    Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Pour SELECT, SHOW, DESCRIBE ou EXPLAIN mysqli_query() retournera un résultat sous la forme d'un objet.
    Ensuite, pour mysqli_affected_rows, le seul paramètre est le link de la connexion comme tu peux le voir ici : http://fr.php.net/manual/fr/function...ected-rows.php

    La doc officielle de PHP est franchement bien, ça serait dommage de s'en passer

  7. #7
    Invité
    Invité(e)
    Par défaut
    Mea culpa! Le fonction mysqli_query renvoit un objet sur un select et un booléen sur un update! Par contre mysqli_affected_rows() attend comme argument non pas un mysqli_result mais bien un mysqli link!

    Merci quand même de m'avoir aidé à trouver la réponse!

    Citation Envoyé par Biglo
    Tu n'as pas été lire la page que je t'ai suggérée je crois !
    Si si mais trop rapidement désolé!

    A bientôt!

    webrider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur d'argument sur une ligne mais quelle
    Par spirou34fr dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/01/2007, 07h24
  2. Erreur d'argument dans une fonction
    Par rouliane dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/12/2006, 11h52
  3. Erreur supplied argument is not a valid MySQL resource
    Par abidi_niz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/09/2006, 13h26
  4. Erreur d'argument avec runqq
    Par janviech dans le forum Fortran
    Réponses: 3
    Dernier message: 11/08/2006, 09h19
  5. Erreur "Runaway argument"
    Par Doom dans le forum Erreurs - Avertissements
    Réponses: 2
    Dernier message: 02/06/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo