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

PHP & Base de données Discussion :

Utilisation des fonctions des récupérations des données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut Utilisation des fonctions des récupérations des données
    Re-re-rebonjour

    Bon y'a vraiment quelque chose que je ne comprend pas, j'ai repassé en vue les docs sur les differences mysql_fetch et après les avoir tous essayés j'ai toujours la meme erreur :


    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\web\www\log4j\index.php on line 119

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\web\www\log4j\index.php on line 121
    Bien voici ma commande SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $sql_sum_up ="
    SELECT time AS day,
    SUM(IF(warning='debug',1,0)) AS debug,
    SUM(IF(warning='info',1,0)) AS info,
    SUM(IF(warning='warn',1,0)) AS warn,
    SUM(IF(warning='error',1,0)) AS error,
    SUM(IF(warning='fatal',1,0)) AS fatal
    FROM log4j
    WHERE time BETWEEN '$date' AND '$date2' 
    GROUP BY time;";
    Et voici ce que ca donne quand je rentre les données dans un cmd mysql basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    +------------+-------+------+------+-------+-------+
    | day        | debug | info | warn | error | fatal |
    +------------+-------+------+------+-------+-------+
    | 2006-10-03 |     0 |    1 |    0 |     0 |     0 |
    | 2006-10-04 |     0 |    0 |    0 |     0 |     1 |
    | 2006-10-10 |     0 |    1 |    0 |     0 |     0 |
    | 2006-10-12 |     0 |    2 |    0 |     0 |     0 |
    | 2006-10-14 |     0 |    0 |    0 |     0 |     1 |
    | 2006-10-18 |     0 |    0 |    0 |     0 |     1 |
    +------------+-------+------+------+-------+-------+
    6 rows in set (0.16 sec)
    Donc jusque là j'obtiens ce que je veux.

    Cependant lorque je veux recuperer ces données par un mysql_fetch_array, row ou assoc il m'envoi bouler ? pourquoi ?

    voici le code php pour appeler le bidule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    echo"<table>
                <tr>
                    <td><b>Date</b><td>
                    <td><b>Debug</b><td>
                    <td><b>Info</b><td>
                    <td><b>Warn</b><td>
                    <td><b>Error</b><td>
                    <td><b>Fatal</b><td>
                </tr>";
     
    while($sum_up = mysql_fetch_assoc($sql_sum_up))
        {
            echo"
                <tr>
                    <td><b>".$sum_up['day']."</b><td>
                    <td><b>".$sum_up['debug']."</b><td>
                    <td><b>".$sum_up['info']."</b><td>
                    <td><b>".$sum_up['warn']."</b><td>
                    <td><b>".$sum_up['error']."</b><td>
                    <td><b>".$sum_up['fatal']."</b><td>
                </tr>";
        }
     
    echo"</table>";
    Je ne vois vraiment pas comment je peux recuperer ces données, les manuels et docs disent de faire comme ca. J'en ai pas mal des boucles while comme ceci dans mon code et ca marche nickel sauf pour celle ci...
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu passes bien tes requêtes comme dans ma signature ?

    A priori l'erreur ne vient pas de mysql_fetch_xxx, mais d'avant.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Cela signifie que ta requête renvoie une erreur.
    Je te conseille de coder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result=mysqli_query($query) 
        or die('Erreur dans la requête : '.$query.'<br />Erreur : '.mysql_error());
    Peux-tu dire alors le message renvoyé ?
    Sinon, donne le code de ta requête.

  4. #4
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Oui, d'ailleur pour ne JAMAIS avoir ce genre de chose à l'écran, tu devrais coder un truc comme ca, our toute tes requettes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $req="SELECT......";
    $result=mysql_query($req);
     
    if($result==false)
    {
    echo "pb ".mysql_error();
    }else{
    while($row=mysql_fetch_row($result))
    {......
    Ce n'est qu'un exemple de ce que tu peu faire, mais c'est clair que dans une requete SQL, quel qu'elle soit, il vaut mieux faire des controles sur son exécution avant d'aller plus loins !!!
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    navré je suis un vrai abruti
    je viens de comprendre mon erreur...

    normalement j'ai pour habitude de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql_nom = mysql_query(....);
     
    while($nom=mysql_fetch_query($sql_nom))
    et je vous le donne en mille :

    j'ai fait mais bon au bout de la 20eme requete je commence à plus rien voir.

    Je vais reecrire mon code plus proprement et utiliser vos conseils de gestion d'erreur. C'est vrai que ca fait gagner du temps dès que le code grossi.

    Merci beaucoup
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/07/2014, 14h54
  2. Destruction des objets de récupération de données
    Par aloisio11 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/10/2007, 17h39
  3. utiliser une fonction VOID pour des blocs relationnels ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 11/09/2006, 16h16
  4. Réponses: 6
    Dernier message: 22/05/2006, 13h54
  5. Creer des fonctions qui émule des fonctions Access
    Par steelidol dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2006, 18h42

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