|
|
|
|
Bonjour,
J'ai un SQL qui me récupérer des infos dans ma BDD et j'aimerais recupérer c'est info pour construire un tableau de type array()
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$valuegraph="";
while ($row) {
$valuegraph=$valuegraph.",".$row[1];
$row=$q->getrow();
}
}
$values = array($valuegraph);
$row[1]
$valuegraph="0";, il va me rajouter une colonne avec la valeur 0.
Configuration: Windows XP Internet Explorer 6.0
Merci beaucoup,
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$premiere_fois=true;
$valuegraph="";
$labelgraph="";
while ($row) {
if($premiere_fois==true){
$valuegraph=$valuegraph."'".$row[1]."'";
$labelgraph=$labelgraph."'".$row[0]."'";
$premiere_fois=false;
}else{
$valuegraph=$valuegraph.",'".$row[1]."'";
$labelgraph=$labelgraph.",'".$row[0]."'";
}
$row=$q->getrow();
}
}
//tableau contenant les valeurs à afficher
$data1=array($valuegraph);
//tableau contenant les labels associés aux valeurs
$label=array($labelgraph);
il m'affiche :
array("'2500.00','2196.80','1045.45','25327.47','11662.84'")
au lieu de
array('2500.00','2196.80','1045.45','25327.47','11662.84')
|
Les guillemets permettent d'afficher des variables sans concaténations.
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$premiere_fois=true;
$valuegraph="";
$labelgraph="";
while ($row) {
if($premiere_fois==true){
$valuegraph=$valuegraph.'\''.$row[1].'\'';
$labelgraph=$labelgraph.'\''.$row[0].'\'';
$premiere_fois=false;
}else{
$valuegraph=$valuegraph.'\''.$row[1].'\'';
$labelgraph=$labelgraph.',\''.$row[0].'\'';
}
$row=$q->getrow();
}
} |
Autant pour moi, j'étais pas dans l'essentiel du message :
$i=0;
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$premiere_fois=true;
$valuegraph="";
$labelgraph="";
while ($row) {
$valuegraph[$i]=$row[1];
$labelgraph[$i]=$row[0];
$i++;
$row=$q->getrow();
}
}
$maxvalue = count( $valuegraph);
$maxlabel = count( $labelgraph );
$i=0;
while( $i < $maxvalue )
{
echo $maxvalue[$i] . '<br />';
$i++;
}
$i=0;
while( $i < $maxlabel )
{
echo $labelgraph[$i] . '<br />';
$i++;
}
?> |
Le script que tu m'as fourni est intéressant mais il affiche le résultat dans la page.
$data=array($data1,$data2,...); $label=array($label1,$label2,...); Ceci afin de générer mon graphique. |
$i=0;
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$premiere_fois=true;
$valuegraph="";
$labelgraph="";
while ($row) {
$valuegraph[$i]=$row[1];
$labelgraph[$i]=$row[0];
$i++;
$row=$q->getrow();
}
}
En t'arrêtant là tu as deux array nommés $valuegraph et $labelgraph. Tu les manipules pareil que la manière que tu veux. Après j'avais juste fait un travail supplémentaire pour afficher le contenu de tes arrays :). |
Mon problème est que lorsque j'affiche le résultat de l'array gérer comme ceci, cela me renvoie :
array(1) { [0]=> string(51) ""2500.00","2196.80","1045.45","28001.57","11662.84"" }
Alors que si je mets les chiffres en dur, il me renvoie bien :
array(5) { [0]=> string(7) "2500.00" [1]=> string(7) "2196.80" [2]=> string(7) "1045.45"
[3]=> string(8) "25327.47" [4]=> string(8) "11662.84" }
Tout simplement parce que dans le premier cas il considère que tous les $valuegraph[$i]ne correspond qu'à 1 seule ligne à cause des " de début et de fin qui sont ajoutés alors que dans le deuxième cas, les " sont considérés comme des séparateurs de colonne. |
Ca y est, je viens de trouver la solution,
array(), je l'ai créé avec explode()et j'ai enlever les " et la tout fonctionne. Résumé :
$q->query($DB,$sSQL1);
if ($q->numrows()>1) {
$row=$q->getrow();
$premiere_fois=true;
$valuegraph="";
$labelgraph="";
while ($row) {
if($premiere_fois==true){
$valuegraph=$valuegraph.$row[1];
$labelgraph=$labelgraph.$row[0];
$premiere_fois=false;
}else{
$valuegraph=$valuegraph.",".$row[1];
$labelgraph=$labelgraph.",".$row[0];
}
$row=$q->getrow();
}
}
//tableau contenant les valeurs à afficher
$data1=explode(",",$valuegraph);
//tableau contenant les labels associés aux valeurs
$label=explode(",",$labelgraph);
Merci à Sky34gl3 pour son aide. |