construction d'un tableau à 2 dimensions à partir d'une tabl

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 : construction d'un tableau à 2 dimensions à partir d'une tabl

par Waynejunior » 02 mars 2006, 08:52

OK... voici donc... J'ai avancé dans le code depuis... Voila où j'en suis...

J'ai une table post :
num_post, date_post, ...

Je voudrais obtenir un tableau de la forme suivante :
200606 ::: 1 post
200605 ::: 2 posts
200603 ::: 1 post
...

Pour y arriver,
Premièrement je trie ma table en fonction de date_post (DESC)
ensuite, la première colonne est la concaténation de l'année et du mois présent dans ma table... J'ai ecris un code qui me permet de compter le nombre d'enregistrements pour chaque "clé" année/mois de ma table (deuxième colonne)...

voici le code que j'ai écris...
mysql_select_db($database_blog, $blog);
$query_archives = "SELECT * FROM post ORDER BY date_post DESC";
$archives = mysql_query($query_archives, $blog) or die(mysql_error());
$ligne = 0;
//$nbre = 1 ;
$cle2 = "";
while ($row_archives = mysql_fetch_assoc($archives)) {
	// $cle : concaténation de l'année et du mois
	$cle = substr($row_archives['date_post'],0,4).substr($row_archives['date_post'],5,2);
	if ($cle != $cle2) {
	$tab_archives[$ligne][0] = $cle;
	$nbre = 1;
	$tab_archives[$ligne][1] = $nbre;
	$ligne ++;
	$cle2 = $cle;}
	else {$nbre ++;
	$tab_archives[$ligne][1] = $nbre;
	}
}
bon... maintenant c'est là que j'ai un souci, je dois avoir un bug quelque part parce que je n'arrive pas à obtenir le nombre d'enregistrements correct...
ça m'affiche quelque chose du genre :

200606 ::: 1 post
200605 ::: 1 post
200603 ::: 1 post
...

Est-ce que vous auriez une idée de mon erreur ?

Merci d'avance...

par Cyrano » 02 mars 2006, 00:22

J'ai un peu de mal a comprendre ce que tu veux afficher: essaye de faire un croquis au blc-note de ce que tu veux obtenir et colle ça ici, on pourra te répondre beaucoup plus efficacement.

construction d'un tableau à 2 dimensions à partir d'une tabl

par Waynejunior » 01 mars 2006, 14:51

Bonjour,

Je souhaiterais créer un tableau à deux dimensions à partir d'une table... Je m'explique, je voudrais que (à partir de ma table triée par ordre décroissant de date) j'ai un code qui construise un tableau qui pour les douze mois de l'année et sur toutes les années présentes dans ma table me donne le nombre d'enregistrements correspondants...

Voila ma requete sql :
mysql_select_db($database_blog, $blog);
$query_archives = "SELECT * FROM post ORDER BY date_post DESC";
$archives = mysql_query($query_archives, $blog) or die(mysql_error());
while ($row_archives = mysql_fetch_assoc($archives)) {
	$mois = substr($row_archives['date_post'],5,2);
	$an = substr($row_archives['date_post'],0,4);
	echo $an.$mois."<BR>";
}
J'ai commencé à écrire un peu le code mais je demande un si je peux pas le faire en sql ou... si la fonction substr est bien adaptée pour le traitement que je veux faire...

MErci d'avance