Aller au contenu

VansFoxy

Actif
  • Compteur de contenus

    20
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par VansFoxy

  1. Avec un peu de retard, merci beaucoup. Je n'ai pas encore eu l'occasion de tester, je verrai ce que ça donne. Merci encore
  2. 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 :
  3. 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
  4. Ah oui super c'est exactement ce qu'il me fallait. C'est vrai que c'est assez simple maintenant que tu las fait, j'ai pas encore l'habitude des sum. Merci bien
  5. VansFoxy

    Souci avec un select

    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"; } }
  6. Bon et bien problème résolu, j'ai mis 10,2 en valeur. Merci à vous de votre aide Bonne journée
  7. Dons si je mets 2 en taille/valeur ça me met un message d'erreur "out of range...."
  8. Je n'ai pas de float 2 uniquement float dans type de ma colone. J'ai taille/valeur, défaut, interclassement, attribut, null, type mime
  9. En clair je dois mettre ou dans phpmyadmin ce 2 ? Je suis pas super fort j'ai un peu de mal a suivre tout ce que vous dites
  10. j'ai tjr cette affichage super long après la virgule. quand tu dis float 2 c'est sa valeur ?
  11. Alors j'ai bien mis float, et 642.62 ça me sort ça quand j'affiche le nombre de litre sur ma page 642.6199951171875
  12. Ah zut ! c'est sous forme de text, je dois mettre lequel ?
  13. 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
  14. Super, on y est arrivé ! Merci beaucoup de ton aide A bientôt
  15. C'est vraiment bizarre, voilà ce que me sort la sous requète : Je laisse un imprim écran de ma table conso, ça te parlera sûrement plus : 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
  16. Voilà ce que ça me sort, rien ...
  17. 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
  18. 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;
  19. Merci à toi, en effet c'est pas l'idéale En fait il faut que chaque première ligne de chaque mois, ne soit pas prise en compte. Donc malheureusement ta solution ne sera pas bonne
  20. 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 Merci d'avance
×
×
  • Créer...