SQL et array()
Résolu
JB_A
Messages postés
301
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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()
Le problème c'est qu'en faiseant comme cela, il va me mettre une "," devant le premier
et si je commence par
Comment faire pour lui dire de commencer à mettre une "," à partir du deuxième enregistrement ?
Merci par avance de vos réponses.
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);
Le problème c'est qu'en faiseant comme cela, il va me mettre une "," devant le premier
$row[1]
et si je commence par
$valuegraph="0";, il va me rajouter une colonne avec la valeur 0.
Comment faire pour lui dire de commencer à mettre une "," à partir du deuxième enregistrement ?
Merci par avance de vos réponses.
A voir également:
- SQL et array()
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
10 réponses
Ca y est, je viens de trouver la solution,
Au lieu de vouloir créer un tableau avec
Résumé :
Merci à Sky34gl3 pour son aide.
Au lieu de vouloir créer un tableau avec
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.
Salut,
par exemple?
$premiere_fois=true; $q->query($DB,$sSQL1); if ($q->numrows()>1) { $row=$q->getrow(); $valuegraph=""; while ($row) { if($premiere_fois==true){ $valuegraph=$valuegraph.$row[1]; $premiere_fois=false; }else{ $valuegraph=$valuegraph.",".$row[1]; } $row=$q->getrow(); } }
par exemple?
Merci beaucoup,
Cela marche presque puisqu'il me rajoute un guillemet avant et après les données donc il considère mes données comme une seule ligne.
il m'affiche :
au lieu de
Cela marche presque puisqu'il me rajoute un guillemet avant et après les données donc il considère mes données comme une seule ligne.
$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.
Essaie comme ça :
Essaie comme ça :
$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(); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai déjà essayé et il me renvoit toujours la même chose, il me rajoute " en début et en fin de
$valuegraphet de
$labelgraphCe qui fait qu'il considère que les 2 éléments correspondent à 1 seul ligne.
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.
Dans mon cas, je récupére dynamiquement les infos afin de les afficher dans un graphique,
c'est pourquoi, il faut que je récupére les infos sous la forme
Ceci afin de générer mon graphique.
Dans mon cas, je récupére dynamiquement les infos afin de les afficher dans un graphique,
c'est pourquoi, il faut que je récupére les infos sous la forme
$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 :
Alors que si je mets les chiffres en dur, il me renvoie bien :
Tout simplement parce que dans le premier cas il considère que tous les
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.