SQL et array()

Résolu
JB_A Messages postés 307 Statut Membre -  
 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()

 $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.
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. JB_A Messages postés 307 Statut Membre 5
     
    Ca y est, je viens de trouver la solution,

    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.
    2
  2. Utilisateur anonyme
     
    Salut,
    $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?
    0
  3. JB_A Messages postés 307 Statut Membre 5
     
    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.

    $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')
    
    0
  4. Utilisateur anonyme
     
    Les guillemets permettent d'afficher des variables sans concaténations.
    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();
            }
    	}
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JB_A Messages postés 307 Statut Membre 5
     
    J'ai déjà essayé et il me renvoit toujours la même chose, il me rajoute " en début et en fin de
    $valuegraph
    et de
    $labelgraph
    Ce qui fait qu'il considère que les 2 éléments correspondent à 1 seul ligne.
    0
  7. Utilisateur anonyme
     
    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++;
    }
    ?>
    0
  8. JB_A Messages postés 307 Statut Membre 5
     
    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
    $data=array($data1,$data2,...);
    $label=array($label1,$label2,...);
    


    Ceci afin de générer mon graphique.
    0
  9. Utilisateur anonyme
     
    $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 :).
    0
  10. JB_A Messages postés 307 Statut Membre 5
     
    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.
    0
  11. Utilisateur anonyme
     
    Oui effectivement, bien trouvé :p.
    Bravo à toi ^^
    0