requete 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 : requete dans un tableau

par konjiki » 03 mai 2006, 16:23

ok merci j'ai pu resoudre mon probleme et en fait c'était vachement simple. Si quelqu'un a le même probleme que moi il suffit de déclarer un tableau avant la requete et concaténer le résultat dans le tableau. Merci pour ton aide Cyrano
//requete pour alimenter le tableau mois
$tab_current_year=array();
$anneem=$annee-1;
for($i = 1; $i <= 13; $i++){
$req = "select count(id) as nb_news from news where `timestamp` between 20$annee$monthm$day and 20$annee$month$day";
//	echo $req;
$result	 = mysql_query($req) or die( $req . '<br />' . mysql_error() );
$row 	 = mysql_fetch_array($result, MYSQL_ASSOC);
$monthm  = $monthm-1;
$month   = $month-1;
$tab_current_year[$i].= $row["nb_news"];
}

par Cyrano » 03 mai 2006, 14:31

au bloc-note avec une police de caractères à chasse fixe : courrier new par exemple ;)

Après ça, copier/coller entre [code] et [/code]

par konjiki » 03 mai 2006, 14:17

euh j'ai une question bete tu as fait comment pour mettre en forme la table, j'ai essayé avec code mais c'est tout crado. merci

par Cyrano » 03 mai 2006, 14:07

...comment sont structurées les données dans la base, réparties comment sur combien de tables et met des exemples : telle table, tel champ, données du genre "xyz"... et ce que tu veux obtenir au final.

Là ce sera clair.

par konjiki » 03 mai 2006, 14:05

je vais essayer de repondre,
comment sont structurées les données dans la base, réparties comment sur combien de tables
donc 1 base de donnée repartie sur 33 tables, et pour le moment je travaille sur la table decrite dessous.
le lien entre les tables en question et ce que tu veux obtenir au final
je voudrai mettre le resultat des requetes dans un tableau pour l'affichage.

Je ne suis pas sur d'avoir bien compris la question donc excuse moi si c'est pas très claire (desolé d'être un newbiz) :merci:

par Cyrano » 03 mai 2006, 13:31

Voila je crois que j'ai tout dit. :D
Je ne crois pas, tu ne donnes que la première partie de la réponse. J'ai remis ton truc en forme pour que ce soit lisible, maintenant, relis ma précédente question (complètement) et finis la réponse.

Comprends bien que si c'est clair pour moi, c'est que tu auras bien expliqué le problème : ce qui signifie également que tu l'auras bien assimilé toi-même... et tu auras donc trouvé toi-même les 3/4 de la réponse.

par konjiki » 03 mai 2006, 13:17

alors voila la table, elle est seule (dans un premier temps). Je cherche à compter les "id" en fonction de `timestamp`. Plus exactement je prend la date courante et je compte les "id" sur les 6 jours qui précedent la date courante

Code : Tout sélectionner

+--------------+-------------+------------------------+ |Champ |Type | | +--------------+-------------+------------------------+ |id |int(6) | | |topic_id |int(3) | | |section_id |int(3) | | |author_id |int(6) | | |lang_id |int(2) | | |user_id |int(6) | | |state |int(1) | | |main_page |int(1) | | |timestamp |timestamp | 0000-00-00 00:00:00 | |title |varchar(150) | latin1_swedish_ci | |date |int (8 | | |departement |tinytext | latin1_swedish_ci | |ip |varchar(9) | latin1_swedish_ci | +--------------+-------------+------------------------+
Comme je décrémente les jours je me suis dit que faire une boucle pour la requete pourrait etre une bonne idée (a priori peut etre pas :oops: ) ensuite je voudrai mettre le resultat des requetes dans un tableau pour l'affichage.
Voila je crois que j'ai tout dit. :D

par Cyrano » 03 mai 2006, 12:45

Ça, c'est ce que tu veux obtenir, mais il manque la partie en amont : comment sont structurées les données dans la base, réparties comment sur combien de tables et met des exemples : telle table, tel champ, données du genre "xyz", table 2 avec tel champ et données du genre "abc" : le lien entre les tables en question et ce que tu veux obtenir au final.

Là ce sera clair.

par konjiki » 03 mai 2006, 11:44

je vais essayer d'être le plus claire possible, j'aimerai mettre les resultats de ma requete dans un tableau pour pouvoir ensuite traiter chaque élements. Pour l'instant toutes les valeurs sont dans une seule case du tableau or ce n'est pas ce que je souhaite. mon but est de remplir un tableau et dans chaque case il doit y avoir le resultat d'un requete (exemple avec $i=2 ou $i=3). J'espere avoir été claire :wink:

par Cyrano » 03 mai 2006, 10:57

Je ne sais toujours pas ce que tu veux faire, je ne peux donc pas répondre. Donne un exemple pour illustrer ce que tu veux faire, je suis pas voyante-extra-lucide ;)

par konjiki » 03 mai 2006, 10:30

j'entend bien mais la boucle est faite pour la requete. Elle permet de décrémenter les jours. y at il moyen de rentrer les resultats de la boucle dans une ligne de tableau differente à chaque fois?

------
req1-
------
req2-
------
req3-
------
je viens d'essayer avec "mysql_fetch_row" mais comme c'est une boucle ça ecrase la valeur à chaque fois. help :cry:

par Cyrano » 03 mai 2006, 10:07

ben place ta requête AVANT la boucle : tu récupères les résultats dans un tableau indexé : fais la boucle sur ce tableau, ce sera plus performant pour la simple raison qu'il n'y aura qu'une seule connexion avec ta base de données au lieu d'une par tour de boucle :arrow: moins d'utilisation des ressources réseau.

Là, je ne suis pas certain de la nature exacte des informations que tu veux retrouver, mais à priori, je suis tenté de croire que tu peux tout extraire correctement trié avec un GROUP BY pour avoir des données comptées par périodes. Il y a donc lieu d'améliorer au niveau de la construction de ta requête SQL.

par konjiki » 03 mai 2006, 09:26

En gros ce que je dois faire c'est compter un nombre d'id pour un certain jour et les 6 jours qui précedent. J'avai pensé que la boucle serai une bonne idée mais si va pas je suis pret à écouter tes conseils :merci:

par Cyrano » 03 mai 2006, 09:19

Je ne me suis pas attardé à l'organisation de ton code, mais de toutes façons, la requête à l'intérieur de la boucle, c'est une mauvaise idée au départ. Ensuite, tu peux toujours ajouter une clause WHERE à la requête pour spécifier une condition particulière.

par Vaedan » 03 mai 2006, 09:19

Tu as fait une erreur dans la requete SQL.
$query  = mysql_query($req) or die( $req . '<br />' . mysql_error() );