Aller au contenu

Requete sql donnant un array


Sujets conseillés

Posté

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.

Posté

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.

Posté

essaye ca

$tab = array();
while($tab[] = mysql_fetch_array($req)){}
echo implode(",",$tab);

cela devrait faire l'affaire

Posté

oups

$tab = array();
while($data = mysql_fetch_array($req)){
$tab[]=$data['tempemin'];
}
echo implode(",",$tab);

voila :fete:

Posté (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.

:fou:

Modifié par snwoman49
Posté (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é par loufoque
Posté
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 = ", ";
   
}

;)

Posté

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é (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é par TheRec

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...