Récuperation de données commenceant par un chiffre

Eléphant du PHP | 398 Messages

26 mai 2007, 17:02

Bonjour, je vous explique mon ti soucis.
je suis en train de coder un site qui référence des albums de musique, chaque album a sa propre fiche. J ai une des pages qui recence la liste de tous les albums, classées par ordre alphabétique.

Mon soucis est que je n arrive pas à ressortir les albums dont le groupe commencen par un chiffre

voila mon code :
connexion(); //connexion à la base de donnée
   		
/* Calcul de nombres d albums */
$sql_nb = requete("select titre from album_rapfr ;");
$nb = mysql_num_rows($sql_nb);
echo '<p>Nombres d\'albums r&eacute;pertori&eacute;s : '.$nb.'</p>';
		
/*Affichage de la liste*/
$alphab = 'A B C D E F G H I J K L M N O P Q R S T U V X Y Z';
$alphab = explode(" ",$alphab);
for($i=0; $i < 25; $i++){	
	echo '<p align="center"><strong>-= '.$alphab[$i].' =-</strong></p>';
	$sql = requete("select id_albumrapfr,artiste,titre,annee from album_rapfr where artiste LIKE '".$alphab[$i]."%' order by artiste, annee ASC;");
	echo '<table border="0" width="500">';
		while($alb = mysql_fetch_array($sql)){
				$id = $alb["id_albumrapfr"];
				$artiste = $alb["artiste"];
				$titre = $alb["titre"];
				$an = $alb["annee"];
				
				echo '<tr><td widht="450"><p>&bull; '.$artiste.' - '.$titre.' ('.$an.')</td>';
				echo '<td><a href="info_album.php?id='.$id.'&artiste='.$artiste.'&titre='.$titre.'">Fiche info</a></p></td></tr>';
					
	/*if(preg_match_all('`[0-9]`',$artiste,???)){	
		echo '<p align=center><strong>-= 0-9 =-</strong></p>'; 
		echo '<tr><td widht="450"><p>&bull; '.$artiste.' - '.$titre.' sortie en '.$an.'</td>';
		echo '<td><a href="info_album.php?id='.$id.'&artiste='.$artiste.'&titre='.$titre.'">Fiche info</a></p></td></tr>';

}//fin if*/
				
}//fin while

			echo '</table>';
			echo '<p>&nbsp;</p>';

Pour tout groupe commenceant apr une lettre de l'alphabet il n y a pas de soucis, l affichage se déroule sans probleme mais pour un groupe commençant par un chiffre, j ai pensé utilisé une regexp mais le soucis est que je ne maitrise pas du tout les expressiosn régulieres. Donc si vous avez des pistes (je prefere si ça ne dérange pas, que l'on m'indique des pistes plutot que de me donner directement la réponse :) ) ça m aiderai, merci =).

Le lien de la page --> http://fonfonland.free.fr/rap/fr/liste_album.php
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 451 Messages

28 mai 2007, 11:01

Bonjour,

Après une lecture rapide de ton code, je comprends que pour ta recherche d'albums, tu prends chacuns des caractères contenus dans la liste $alphab, tu l'affiches, puis que tu recherches les albums commençant par ce caractère (requête SQL) pour les afficher.
Comme ta liste $alphab ne contient pas les chiffres, il me semble qu'il n'y a rien d'étonnant à ce que tu ne récupères pas les albums qui comment par un chiffre.

Autre chose, à ta place, pour parcourir la liste, au lieu d'utiliser une boucle for dont il faut changer la borne si on modifie la taille du tableau, j'utiliserais foreach().

Bonne continuation
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)