Classement alphabétique

Eléphant du PHP | 136 Messages

03 déc. 2006, 23:21

La page demandée n'a pas été trouvée!
Si vous avez tapé l'URL à la main, veuillez vérifier l'orthographe et réessayer.
Bisvan :)

ViPHP
ViPHP | 1961 Messages

03 déc. 2006, 23:25

Essaye de noveau, ça devrait fonctionner.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 136 Messages

03 déc. 2006, 23:26

Ahhhh :)

merci :)
Bisvan :)

Mammouth du PHP | 19672 Messages

03 déc. 2006, 23:27

Il y a un problème avec ton code Ajoloca : il ne tient pas compte du nombre de cellules et dans l'exemple, la dernière ligne n'a qu'une seule cellule au lieu de 2 : le code n'est pas conforme et par conséquent encore moins valide.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1961 Messages

03 déc. 2006, 23:48

Il y a un problème avec ton code Ajoloca : il ne tient pas compte du nombre de cellules et dans l'exemple, la dernière ligne n'a qu'une seule cellule au lieu de 2 : le code n'est pas conforme et par conséquent encore moins valide.
Tu as oublié :
- Pas de doctype
- <table border="1">,
- dans chaque <td valign="top">.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta name="generator" content="Bluefish 1.0.7"/>
		<meta name="author" content="José LOPEZ"/>
		<meta name="date" content="2006-12-04T07:31:42+0100"/>
		<meta name="copyright" content=""/>
		<meta name="keywords" content=""/>
		<meta name="description" content=""/>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
		<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
		<meta http-equiv="content-style-type" content="text/css"/>
		<meta http-equiv="expires" content="0"/>
		<!--<meta http-equiv="refresh" content="5; URL=http://"/>-->
   	<title>Prenoms</title>
		<style type="text/css">
		td {
			border : solid 1px;
			vertical-align: top;
		}
		</style>
	</head>
<body>
<?php
// Connexion à la base et extraction des données
$cnx = mysql_connect('localhost', '****', '****') or die ('ERR_CNX <br />' . mysql_error());
mysql_select_db('test', $cnx) or die('ERR_CHOIX_DB <br />' . mysql_error());
$qrySel = 'SELECT * FROM prenoms ORDER BY prenom';
$result = mysql_query($qrySel) or die('ERR_SQL : ' . $qrySel . '<br />' . mysql_error());

/*
* Nombre de colonnes par ligne.
*
* Si on désire un autre nombre de colonnes dans la ligne
* Il suffit de modifier la valeur de cette variable
* sans toucher au reste du code
*/
$nbCols = 2;

// Lettres au départ. On considère que minimum un prénom
$lettres = 0;

// Permet de sortir du traitement le premier prénom
$i = 0; 
$derniereInitiale = ''; // Première intiale = chaîne vide

// construction du tableau
echo '<table><tr><td>';
// Boucle sur les enregistrements trouvés
while($row = mysql_fetch_assoc($result)){
	// Récupération de l'initial du prénom en cours
   $initialeActuelle = strtoupper(substr($row['prenom'], 0, 1));
   // Si changement d'initiale
   if($initialeActuelle != $derniereInitiale){
   	//Si Pas le premier pénom
   	if($i != 0){
      	if($lettres % $nbCols == 0){// Si on doit changer de ligne
      		echo '</td></tr><tr><td>';
      	}
      	else { // On doit changer de colonne
      		echo '</td><td>';
      	}
      }
      // Incrémentation du nombre de lettres (pour gérer le nombre de colonnes)
      $lettres++;
      // Mémorisation de la nouvelle initiale
      $derniereInitiale = $initialeActuelle;
      // Affichage de la première 
      echo '<b>LETTRE ' . $derniereInitiale . '</b><br />';
   }
   // C'est plus le premier prénom
   $i = 1;
   //Affichage du prénom
   echo $row['prenom'] . '<br />';
}
// Fermeture de la dernière colonne remplie
echo '</td>';
// On rempli toutes les colonnes de la ligne avec un espace insecable
while(($lettres) % $nbCols != 0){
	echo '<td>&nbsp;</td>';
	// Le nombre de lettres doit être incrémenté
	// Il détermine le point d'arrêt 
	$lettres++;
}
?>
	<!-- Fermeture de la table -->
	</tr></table>
</body>
</html>
C'est mieux ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 19672 Messages

04 déc. 2006, 09:40

Maintenant oui, parfait. Pour l'anecdote, j'ajoute tout de même un élément : en XHTML, la balise table doit obligatoirement comporter un attribut summary="" même si aucune valeur n'y est inscrite. :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1961 Messages

04 déc. 2006, 12:04

Pourtant la page est validée par le W3C.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

04 déc. 2006, 12:28

condition nécessaire mais pas suffisante... ;)

Eléphant du PHP | 136 Messages

04 déc. 2006, 12:28

et a quoi sert cette balise summary ?
Bisvan :)

ViPHP
ViPHP | 1961 Messages

04 déc. 2006, 12:32

Bonjour,

L'attribut 'summary' que l'on peux traduire par 'sommaire'
te permets de donner un résumé du tableau.

Je crois que c'est surtout utile aux systèmes de reproduction vocale qui pourraient lire ce texte comme introduction au tableau.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 136 Messages

04 déc. 2006, 12:48

ca doit peut être aider aussi pour google et le référencement non ?
Bisvan :)

Eléphant du PHP | 136 Messages

05 déc. 2006, 14:10

Euh juste une info sur le script avec les <table>
Pouvez vous me traduire cette expression :
//boucle1 
if($i != 0){ 
//boucle2
          if($lettres % $nbCols == 0)
{
}
else
{
}
//FIN BOUCLE 2
}
//FIN BOUCLE 1
Je ne pige pas la fonction de "%" dans la boucle n°2 ?
Bisvan :)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 déc. 2006, 14:13

modulo

donne le reste d'une division euclidienne.

Eléphant du PHP | 136 Messages

05 déc. 2006, 14:16

hum...euh oué mais encore ? en terme simple que mon petit cerveau puisse comprendre (moi et les euclides heing... :D )
Bisvan :)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 déc. 2006, 14:20

19 % 4 = 3

car 19 = 4 * 4 + 3

16 % 4 = 0
17 % 4 = 1
18 % 4 = 2
19 % 4 = 3
20 % 4 = 0
21 % 4 = 1
etc...