Aller au contenu

VansFoxy

Actif
  • Compteur de contenus

    20
  • Inscrit(e) le

  • Dernière visite

Messages postés par VansFoxy

  1. Bonjour, je ne m'en sors pas avec cette erreur "resource id..."



    Mon code actuel est :




    $sql_pas_plein = mysql_query("select id from conso where mois=$nb_mois_km_bas AND plein=1 ORDER BY id DESC limit 0 , 1") or die(mysql_error());
    $pas_plein = mysql_fetch_array($sql_pas_plein);
    $nb_pas_plein = mysql_query("select sum(litres) from conso where mois='$nb_mois_km_bas' and plein = '2' and id > '".$pas_plein["id"]."' ") or die(mysql_error());
    echo "$nb_pas_plein<br>";

    Je vous laisse un screen de ce que ça m'affiche :



    conso.jpg


  2. J'ai bien fait comme tu as dit, mais ça m'affiche "Resource id #21" .



    Je pense que c'est quand le résultat est négatif, ça affiche ça non ? Faut que je trouve un moyen de résoudre ça :(


  3. Bonjour à tous,

    Je viens vers vous car j'ai à nouveau un problème qui cette fois dépasse mes connaissances de très loin. Je suis en train de créer un petit module en php, avec une base de donnée pour gérer la consommation de camions. Je vais essayer d'être assez clair dans mon explication.

    Tout d'abord, j'ai une colonne dans ma table qui s'appelle "plein", et si la valeur est de "1" c'est que le camion a fait un plein complet, si elle est de "2" c'est qu'il a fait qu'un complément. Pour calculer la consommation du mois en cours, j'ai besoin de récupérer des infos sur le mois d'avant, c'est à dire les kilomètres (km dans ma table), de la dernière prise de gasoil complète. Mais c'est la le hic, car c'est très facile de faire ce qui est au dessus, j'aurais besoin de sélectionner les pleins qui ne sont pas complet, s'il y en a, après le dernier plein complet du mois précédent.

    J'espère que c'est assez clair pour vous. Si vous avez un petit bout de code à me suggérer, je vous en serai très reconnaissant, car là je suis bloqué.

    Merci à vous d'avance.

    Je vous poste mon code, qui fonctionne très bien, mais comme je vous disais si à partir du dernier plein du mois précédent, les litres des plein pas complet doivent être mis sur le mois d'après, et je vois pas comment faire pour les sélectionner

    function calcul_conso($mois) {            $req = mysql_query("select * from conso where mois=$mois ORDER BY id ASC");       if (mysql_num_rows($req) >= 1 ) {                      $req_plein = mysql_query("select * from conso where mois=$mois order by id DESC limit 0 , 1");           $plein = mysql_fetch_array($req_plein);           if ($plein["plein"] == "1") {                                             $nb_mois = $mois - 1;               $nb_annee = date("");                              $req_km1 = mysql_query("select * from conso where mois=$nb_mois order by id DESC limit 0 , 1");               $data1 = mysql_fetch_array($req_km1);               $km_bas = $data1["km"];                              $req_km2 = mysql_query("select * from conso where mois=$mois order by id DESC limit 0 , 1");               $data2 = mysql_fetch_array($req_km2);               $km_haut = $data2["km"];                              $req_km = $km_haut - $km_bas;                              $sql = mysql_query ("SELECT sum(litres) FROM (SELECT litres FROM conso WHERE mois=$mois ORDER BY id ASC)s");               $somme = mysql_result ($sql,0);               $somme = str_replace(".",",",$somme);                              echo "$req_km"."km<br>";               echo "$somme"."L<br>";               $moyenne = $somme / $req_km * 100;               $moyenne = number_format($moyenne,2);               $moyenne = str_replace(".",",",$moyenne);               echo "$moyenne"."L/100km";                          } else {                              echo "manque plein";           }              } else {                    echo "rien";              } }

    :)

  4. Ah mince, juste un dernier détail, quand je fais un sum de mes litres, il ne me prend pas en compte tout ce qui est après la virgule. Donc ma moyenne est faussée. Pour rappel mon code ressemble à ça :


    $sql = mysql_query ("SELECT sum(litres) FROM (SELECT litres FROM conso WHERE mois=11 ORDER BY id ASC LIMIT 1,1000000)s");
    $somme = mysql_result ($sql,0);
    echo "$somme"."L<br>";

    J'ai dans ma table, une valeur de 642,62L, et quand je fais le echo $somme ça m'affiche une valeur de 642 :(

  5. C'est vraiment bizarre, voilà ce que me sort la sous requète :

    1.jpg

    Je laisse un imprim écran de ma table conso, ça te parlera sûrement plus :

    2.jpg

    Vois tu où est le souci, pour faire un sum de mes litres, sans prendre la première ligne de ma table avec le limit ?

    Merci

  6. Hello, en effet j'ai inversé le " avec la ) . Cependant je vois pas du tout où placer ton " s ", je suis désole je n'ai jamais utilisé cette fonction au bout d'une ligne SQL.

    En reprenant mon exemple, peux tu me dire où ça cloche stp :


    $sql = mysql_query ("SELECT sum(litres) FROM (SELECT litres FROM conso ORDER BY id ASC LIMIT 1,0)s");
    $somme = mysql_result ($sql,0);
    echo $somme;

    Car là je n'ai plus d'erreur, ça n'affiche rien du tout en fait :)

  7. Salut Jacques,

    Le petit " s " en bout de ligne, c'est une erreur ou non ?

    Sinon j'ai fait ça, mais ça ne fonctionne pas :


    $sql = mysql_query ("SELECT sum(litres) FROM (SELECT litres FROM conso ORDER BY id ASC LIMIT 1,0"));
    $somme = mysql_result ($sql,0);
    echo $somme;

    :(

  8. Bonjour à tous,

    J'ai un petit souci pour compter tous les résultat d'une colonne dans ma table. Ma table s'appelle "conso", et la colonne en question est "litres". Dedans il y

    uniquement des chiffres, logique ce sont des litres... Alors voilà, imaginon qu'il y ait ces champs dans mes "litres" :

    10

    5

    5

    10

    J'aimerais compter ces résultats, sans compter le premier.

    Au départ j'avais fait ceci :


    mysql_query ("SELECT SUM(litres) AS total FROM conso ORDER BY id ASC");

    Et bien entendu, ça me sort un résultat de " 30 ". En suite j'ai ajouté un " LIMIT 1 , 0 ", pour que ça ne compte pas le premier résultat, mais ça n'est visiblement pas possible dans un select sum d'y ajouter un limit.

    Bref, j'espère avoir été assez clair, et que vous pourriez m'aider à résoudre mon problème smile.gif

    Merci d'avance

×
×
  • Créer...