stocker toutes les donnée d'une requete sql dans un tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : stocker toutes les donnée d'une requete sql dans un tableau

par kroun » 19 sept. 2006, 16:49

Avec :
$sql = new sql();
$retour = $sql->get_data('select * from news');
foreach($retour as $key=>$value) {
echo '<p>'.$value.'</p>';
}
ca marche, mais le problème c'est que ca m'affiche deux fois chaque champs.

par Rei Itchido » 19 sept. 2006, 16:36

:shock:

Essaye
 var_dump($le_tableau);

par kroun » 19 sept. 2006, 14:39

Le petit problème c'est qu'en faisant ca :
<?php 
include_once('php/sql.class.inc.php');
$sql = new sql('localhost', 'root', '', 'marche_equitable');
$le_tableau = $sql->get_data('select * from news order by id');
foreach($le_tableau as $donnee){
echo $donnee['titre']; 
}
?>
il me renvoi la première lettre ou le premier chiffre de chaque champ, en locurrence : 11nnLL

(ma premier news a pour id '1', pour titre 'news 1' et le texte 'Lorem ipsum..').

Comprend pas :oops:

par Rei Itchido » 19 sept. 2006, 14:22

Tu t'embrouilles un peu à mon avis
public function get_data($ma_requete) {
$this-> querySql = mysql_query($ma_requete, $this-> connect);
$this-> data = mysql_fetch_array($this-> querySql)); // la tu stockes dans data le tableau qui contient tes données
return($this-> data); // tu retournes le tableau
} 
Et derrière
include_once('php/sql.class.inc.php');
$sql = new sql('localhost', 'root', '', 'marche_equitable');
$le_tableau = $sql->get_data('select titre, contenu from news order by id'); // la fonction renvoie le tableau, on le stocke dans $le_tableau

// tu parcours le tableau ligne par ligne
foreach($le_tableau as $une_ligne) {
echo $une_ligne['le champs'];
}

// ou si tu veux afficher le contenu du tableau :
print_f($le_tableau);

par kroun » 19 sept. 2006, 14:07

euh c'est la qu'on utilise foreach non ?

donc si j'ai bien compris :
foreach($sql->data as $donnee) {
echo $donnee;
{
edit : c pas ca, il m'affiche les données en double :roll:

par Rei Itchido » 19 sept. 2006, 14:01

Encore un petit effort :)

Ta fonction te retourne le tableau mais derrière il faut bien que tu le parcours :wink:

par kroun » 19 sept. 2006, 13:59

mais mon probleme, c'est que lorsque j'appel $this-> data il ne me retourne qu'une seule ligne :
<?php 
include_once('php/sql.class.inc.php');
$sql = new sql('localhost', 'root', '', 'marche_equitable');
$sql->get_data('select titre, contenu from news order by id');
echo $sql->data;
?>
Je l'avoue, je suis pas très douer avec les tableaux. :lol:

par Rei Itchido » 19 sept. 2006, 13:54

:)

Alors oui, retourne le tableau qui contient les données et fais en ce que tu veux derrière

par kroun » 19 sept. 2006, 13:49

oui c'est ca, je veux retourner le tableau de données pour ensuite le traiter dans une autre fonction.

edit : en fait ca revient a faire ce que tu disais dans ta premiere reponse :oops:

par Rei Itchido » 19 sept. 2006, 13:47

Mais tu veux retourner qqchose (le tableau des données) ou afficher un tableau html?

par kroun » 19 sept. 2006, 13:41

En fait, ce que je veux, c'est éviter d'avoir ca dans la boucle while :
public function get_data($ma_requete) {
$this-> querySql = mysql_query($ma_requete, $this-> connect);
while ($this-> data = mysql_fetch_array($this-> querySql)){
echo '<h2>'.$this-> data['donnee1'].'</h2>';
echo '<p>'.$this-> data['donnee2'].'</p>';
echo '<p>'.$this-> data['donnee3'].'</p>';
}

} 

par Rei Itchido » 19 sept. 2006, 13:30

Tu veux pas plutôt retourner le tableau et le parcourir ensuite?

stocker toutes les donnée d'une requete sql dans un tableau

par kroun » 19 sept. 2006, 13:24

bonjour,

J'ai un petit soucis, j'ai créer une classe sql avec une fonction qui permet de retourner les résultats d'une requete :
public function get_data($ma_requete) {
$this-> querySql = mysql_query($ma_requete, $this-> connect);
while ($this-> data = mysql_fetch_array($this-> querySql)){}
return $this-> data;
}
Mon problème, c'est que $this->data ne retourne qu'une ligne de la table, je sais que l'on peut stocker $this->data dans un tableau (grace a la boucle while), mais je n'arrive pas à trouver la syntaxe correcte pour que mon tableau fonctionne.

merci d'avance.