snwoman49 Posté 15 Août 2005 Posté 15 Août 2005 Bonjour, J'ai un petit problème actuellement, Il faudrait que les champs X de ma table Y s'affiche sous la forme d'un array,pour ensuite crée un graphique de ces points avec gd. $sql= "SELECT * FROM climato_tbl WHERE pseudo='$pseudo' ORDER BY id DESC";$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());while($data = mysql_fetch_array($req)) {echo "".$data['tempemin'].",";} J'ai essayer ca mais comme vous le voyez,la virgule pose des problèmes. J'espère que vous pourrez m'aider. A bientôt.
snwoman49 Posté 15 Août 2005 Auteur Posté 15 Août 2005 Voila ce que ca m'affiche. a cet url Et il faudrait que la dernière virgule ne soit pas,car quand j'utilise ces données ca me met que mon array n'est pas valide.
rportal Posté 15 Août 2005 Posté 15 Août 2005 essaye ca $tab = array();while($tab[] = mysql_fetch_array($req)){} echo implode(",",$tab); cela devrait faire l'affaire
rportal Posté 15 Août 2005 Posté 15 Août 2005 oups $tab = array();while($data = mysql_fetch_array($req)){$tab[]=$data['tempemin'];} echo implode(",",$tab); voila
snwoman49 Posté 15 Août 2005 Auteur Posté 15 Août 2005 Merci beaucoup Rportal Je te remercie vraiment,tu me retires une épine du pied.
snwoman49 Posté 15 Août 2005 Auteur Posté 15 Août 2005 (modifié) Bonsoir, J'ai un petit problème avec le array maintenant.. Voila le code $fa = fopen("http://meteorologic.net/climato/tempemin.php?pseudo=snowman49", "r");$fa=fread($fa,200); $values = array($fa); echo "$values"; Et ca m'affiche Array. Modifié 15 Août 2005 par snwoman49
minirop Posté 16 Août 2005 Posté 16 Août 2005 c'est normal si tu fait echo sur un tableau sans index. essaye en faisant echo $values[0];
loufoque Posté 22 Août 2005 Posté 22 Août 2005 (modifié) $tab = array();while($data = mysql_fetch_array($req)){$tab[]=$data['tempemin'];}echo implode(",",$tab); C'est pas très malin. Gaspillage de temps et de mémoire. $first = true;while($data = mysql_fetch_array($req)){ if($first) { $first = false; echo $data['tempemin']; } else { echo ','.$data['tempemin']; }} Modifié 22 Août 2005 par loufoque
Anonymus Posté 22 Août 2005 Posté 22 Août 2005 C'est pas très malin.Gaspillage de temps et de mémoire. $first = true;while($data = mysql_fetch_array($req)){ if($first) { $first = false; echo $data['tempemin']; } else { echo ','.$data['tempemin']; }} <{POST_SNAPBACK}> C'est pas très malin. Gaspillage de temps et de mémoire. $first = "";while($data = mysql_fetch_array($req)){ echo $first.$data['tempemin']; if(empty($first)) $first = ", "; }
loufoque Posté 26 Août 2005 Posté 26 Août 2005 Un booléen fait un octet, une chaîne en fait bien plus (ne connaissant pas exactement le système interne de php, je ne saurais te dire, mais bon comme ce sont des chaînes binaires ils doivent stocker la taille de la chaîne dans un entier assez long du genre 4 octets plus un octet par caractère). De plus la seule concaténation que j'effectue, c'est avec une chaîne statique, ce qui est bien plus rapide qu'avec une variable. Il y a une vraie différence entre le code que j'ai fourni et le code précédent, mais une différence minime entre mon code et celui que tu viens de présenter, et qui n'est en plus même pas à ton avantage.
TheRec Posté 26 Août 2005 Posté 26 Août 2005 (modifié) Un booléen fait un octet, une chaîne en fait bien plus (ne connaissant pas exactement le système interne de php, je ne saurais te dire, mais bon comme ce sont des chaînes binaires ils doivent stocker la taille de la chaîne dans un entier assez long du genre 4 octets plus un octet par caractère).De plus la seule concaténation que j'effectue, c'est avec une chaîne statique, ce qui est bien plus rapide qu'avec une variable. Il y a une vraie différence entre le code que j'ai fourni et le code précédent, mais une différence minime entre mon code et celui que tu viens de présenter, et qui n'est en plus même pas à ton avantage. <{POST_SNAPBACK}> En même temps l'allocation du nombre de bits à un type ne dépends pas que du language donc je me vois mal avancer ces chiffres sans connaitre les spécifications du serveur qui exécutera ce script. Mais en même temps je ne suis pas sûr que tout ceci préoccupe snwoman49 qui est venu poser une question simple et qui se retrouve à arbitrer un combat du plus beau code pour afficher un tableau "implosé"... au passage si on veut jouer au malin et ne pas utiliser de mémoire ni d'opcode de trop (des conditions dans une boucle impliquent un passage à chauqe itération...) il faut mettre la virgule après chaque valeur et après la boucle utiliser rtrim avec "," comme caractère à tronquer... L'utilisation mémoire d'un caractère de plus dans la chaîne est minime quand on pense que la boucle (et donc l'évaluation de condition à l'intérieure de celle-ci) peut être exécutée un nombre de fois énorme suivant la base de données... mais bon j'aurais du me passer de ce commentaire pour coller avec l'esprit de mon message Modifié 26 Août 2005 par TheRec
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant