Classement alphabétique

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 : Classement alphabétique

par Bisvan » 05 déc. 2006, 14:22

Alea jacta est !
J'ai compris :)

par albat » 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...

par Bisvan » 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 )

par albat » 05 déc. 2006, 14:13

modulo

donne le reste d'une division euclidienne.

par Bisvan » 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 ?

par Bisvan » 04 déc. 2006, 12:48

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

par Ajoloca » 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.

par Bisvan » 04 déc. 2006, 12:28

et a quoi sert cette balise summary ?

par albat » 04 déc. 2006, 12:28

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

par Ajoloca » 04 déc. 2006, 12:04

Pourtant la page est validée par le W3C.

par Cyrano » 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. :)

par Ajoloca » 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 ?

par Cyrano » 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.

par Bisvan » 03 déc. 2006, 23:26

Ahhhh :)

merci :)

par Ajoloca » 03 déc. 2006, 23:25

Essaye de noveau, ça devrait fonctionner.