GRAPHIQUE EN DYNAMIQUE

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 7 févr. 2006 à 08:15
xavier230573 Messages postés 47 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 février 2009 - 22 mai 2007 à 10:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35925-graphique-en-dynamique

xavier230573 Messages postés 47 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 février 2009
22 mai 2007 à 10:04
corrige les erreurs car je suis débutant et ton code m'intéresse
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
13 févr. 2006 à 23:55
petite correction de mon message :
=> Un autre détail à rajouter...

(ce serait bien de pouvoir éditer ses commentaires pour corriger les fautes ^^)
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
13 févr. 2006 à 23:54
# $db = @mysql_connect('addr_serveur','login','password');
# @mysql_select_db("compteur",$db);

=> déja ça me gène si sur 10 lignes tu n'est pas cohérents c'est assez mal baré. Remplace ça "compteur" par ça 'compteur'.

=> Un autre étail à rajouter : en cas d'échec de la connexion sql ce serait bien de prévenir le visiteur... non?

=> Globalement je dirais qu'il faudrais une meilleur gestion des erreurs, et ne pas mettre ce code en initié (surtout que si tu débute en mysql et gd je vois pas comment tu pourrait faire un code initié. Pour ma part je mets 6/20 : c'est encourageant et ça pourrait être intérréssant par d'autre débutant si tu tenais compte de nos remarques.
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
13 févr. 2006 à 13:58
genre je passe le tableau en param d'une fonction, et je parcours chaque case jusqu'a la fin

foreach ($montab as $key => $var)
{
echo $key . ' => ' . $var . '
;
}
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 févr. 2006 à 21:21
ou bien sizeof...
maiston code n'est toujours pas corrigé...
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
9 févr. 2006 à 13:15
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
9 févr. 2006 à 12:57
J'ai poster la source pour qu'on me dise ce qu'il faudrais que je change. Je début plus ou moins en mySQL et en GD. Donc je voudrais connaitre ces fonctions pour ensuite en faire une fonction plus générique.
D'ailleur comment puis-je connaitre la taille d'un tableau ? genre je passe le tableau en param d'une fonction, et je parcours chaque case jusqu'a la fin
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 févr. 2006 à 13:44
l'art du camouflage...
$im = imagecreate($largeur,$hauteur);
ici t'as oublié de camoufler...
mettre un do pour lister les lignes d'une table n'est pas une bonne idée car si ta table est vide, il y a un bug...
Bon, et sinon, ça ne vaut pas initié...
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
7 févr. 2006 à 23:56
Bon bon bon, eclaircissons un point :
Le @ est un opérateur qui est en soit inutile, car sa fonction est, en cas d'erreur retourné par l'expression sur laquelle il est appliqué, d'empêcher d'afficher un message expliquant le problème et éventuellement d'arrêter le script à cause de celle-ci.
Donc, cela signifie que tu considère que tes expression pourrait renvoyer des erreurs et que si cela arrivait, tu ne voudrais pas en entendre parler, espérant naïvement que le script continuerait normalement comme si de rien n'était.
Or, il est évidement que c'est inutile, car ton script affichera "L'image a afficher contient des erreurs" du fait des entêtes que tu envois dès le début.

L'idéal, est donc, comme tu mets essentiellement des @ sur des fonctions mysql, de faire quelque chose dans ce genre :
$db = mysql_connect('addr_serveur','login','password') or die(mysql_error());
mysql_select_db("compteur",$db) or die(mysql_error());
$query = 'SELECT * FROM cpt_page WHERE 1 ORDER BY nbr ASC';
$req = mysql_query($query) or die(mysql_error());

Quant aux @ devant les mysql_fetch_array() ils sont tout bonnement inutiles car si tout c'est bien passé jusque là, il ne doit pas y avoir de problème.

Sinon l'utilité de ta source dans ton code "Les Camembert 3D", à part le fait que c'est un autre type de graphique, ton code n'est pas utilisable tel quel... alors que la fonction que tu avais faite oui =).
Bref tu devrait faire une fonction dans laquelle on y entrerais les données et qui générerait le graphique

Sinon, ton header() tu devrait le mettre juste avant ImagePng() pour pouvoir voir les erreurs éventuelles correctement.
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
7 févr. 2006 à 17:57
il faudrais que je teste si if( $req = mysql_..... ) fonctionne, et sans m'afficher l'image, ou si il faut mettre quand même le @.
Il s'agit de là une petite source qui demande qu'à être amélioré et qui trouve son utilisé avec ma source précédement poster.
La couleur bleuté est la couleur de fond, mais je me demande si j'ai vraiment besoin de mettre la variable (je pense que non).

Merci pour vos conseil, je vais amélioré tous ça
ludovicanceaux Messages postés 440 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 6 mai 2010
7 févr. 2006 à 12:15
tu pe pô mettre d'apercu?????
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
7 févr. 2006 à 08:15
Tout d'abord :
- moins de @ ... Une bonne gestion des erreurs ça fait toujours plus classe! ;)
- du mysql plus joli, ça aurait été mieux : le SELECT * est moche et le WHERE 1 aussi
- Ah! et pis ta couleur $bleute n'est pas utilisée.

Sinon, ton code n'est pas réellement utilisable tel quel. La personne qui voudra s'en servir devra rebidouiller un tier de ton script pour que ça marche chez lui.

En revanche, comme tu "montre[s] juste comment créer une image dynamiquement", ce code, avec quelques explications supplémentaires (et les corrections sus-suggérées), aurait eu une place de choix dans la catégorie "Tutoriaux" =)
Rejoignez-nous