Extraire certaines donnéees d'une base

Petit nouveau ! | 1 Messages

09 avr. 2007, 23:35

Bonsoir à tous.
Je sature et je n'arrive pas à trouver la solution à mon problème, après plusieurs recherches et essais :
Je voudrais sortir de ma base de données :
-1 La liste des genres existants (1 seule fois, même s'il y a plusieurs livres du même genre, bien sûr).
-2 Le nombre de livres dans chaque genre.
Voici le code de lecture de la base que j'ai nettoyé de tous mes essais pouris :
<?php
$req = "SELECT * FROM livres WHERE CONCAT_WS(' ',id,auteur,titre,genre,CONVERT(annee,CHAR),commentaire)";
		$res = mysql_query($req);
		if(!$res)
		exit;
		$nb_livres = mysql_num_rows($res);
$numero = 0;
$nbGenres = 0;
$genres ="";
	for($i=0; $i<$nb_livres; $i++) // DÉBUT Boucle FOR
	 	{
  $numero = ($numero +1);
  $livre = mysql_fetch_array($res);
  $id = $livre['id'];
  $auteur = $livre['auteur'];
  $titre = $livre['titre'];
  $genre = $livre['genre'];
  $annee = $livre['annee'];
  $commentaire = $livre['commentaire'];
  $pret = $livre['pret'];
	}
?>
Je suis perdu. Si quelqu'un pouvait me donner un coup de pouce.
Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 avr. 2007, 23:46

Modération :
mayol, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un message, merci de bien vouloir l'éditer


Concernant ton problème, si j'ai bien compris, tu souhaites connaite la liste des genres et le nombre de livre associés ? Il te suffit pour cela d'une simple requête sql en utilisant la commande group by pour regrouper les éléments (pas besoin de ramener l'id, l'année ou autre) :
$sql = "SELECT count(*) AS nb, genre
  FROM livres 
  GROUP BY genre"; 
Cette requête va compter tous les livres de ta table en les regroupant par genre :) Il te suffit donc de l'exécuter et d'afficher les résultats comme bon te semble :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...