par
Cyrano » 14 oct. 2006, 20:35
Mouais, étant moi-même passé par le même chemin de l'auto-apprentissage, je visualise assez bien tes questionnement.
Partons donc si tu veux biens de données : ces données sont sous la forme d'un tableau : on va construirça rapido pour les besoins de la cause :
Construisons rapidement un jeu d'essai similaire :
<?php
$ligne = array();
$ligne[] = array("titre" => "Titre1", "lien" => "lien1");
$ligne[] = array("titre" => "Titre1", "lien" => "lien2");
$ligne[] = array("titre" => "Titre1", "lien" => "lien3");
$ligne[] = array("titre" => "Titre2", "lien" => "lien1");
$ligne[] = array("titre" => "Titre2", "lien" => "lien2");
$ligne[] = array("titre" => "Titre3", "lien" => "lien1");
$ligne[] = array("titre" => "Titre3", "lien" => "lien2");
?>
Ce qui va nous donner sommairement le résultat suivant :
- Titre1
- - lien1
- - lien2
- - lien3
- Titre2
- - lien1
- - lien3
- Titre3
- - lien1
- - lien2
Mais lors de ma requête, je vais récupérer ça sous forme de lignes du genre :
- Titre1 | lien1
- Titre1 | lien2
- Titre1 | lien3
- Titre2 | lien1
etc...
Pour que tu puisses tester, ce système présente une légère différence avec le fonctionnement sur une requête SQL, mais le principe est strictement le même.
Voici :
<?php
$ligne = array();
$ligne[] = array("titre" => "Titre1", "lien" => "lien1");
$ligne[] = array("titre" => "Titre1", "lien" => "lien2");
$ligne[] = array("titre" => "Titre1", "lien" => "lien3");
$ligne[] = array("titre" => "Titre2", "lien" => "lien1");
$ligne[] = array("titre" => "Titre2", "lien" => "lien2");
$ligne[] = array("titre" => "Titre3", "lien" => "lien1");
$ligne[] = array("titre" => "Titre3", "lien" => "lien2");
/* J'établis une variable vide */
$var = "";
/* Je boucle pour créer ma liste en groupant par ensemble de titres */
// pour les besoins de l'exemple, je compte le nombre de lignes dans mon tableau
$n = count($ligne);
for($i = 0; $i < $n; $i++)
{
/* On vérifie la valeur de $var et on compare avec le titre de las ligne */
if($var != $ligne['titre'])
{
/* J'attribue la valeur du titre à ma variable */
$var = $ligne['titre'];
/* J'affiche le titre */
echo("<h4>". $ligne['titre'] ."</h4>\n");
}
/**
* Pas de else, si le titre a la même valeur que la variable $var, je passe directement au
* lien, pas besoin de l'afficher à nouveau.
*/
/* On affiche de toutes façons le lien */
echo("<a href=\"#\" title=\"Lien ". $i ."\">". $ligne['lien'] ."</a>\n");
/* Fin du tour, on reboucle */
}
?>
Mouais, étant moi-même passé par le même chemin de l'auto-apprentissage, je visualise assez bien tes questionnement.
Partons donc si tu veux biens de données : ces données sont sous la forme d'un tableau : on va construirça rapido pour les besoins de la cause :
Construisons rapidement un jeu d'essai similaire :
[php]<?php
$ligne = array();
$ligne[] = array("titre" => "Titre1", "lien" => "lien1");
$ligne[] = array("titre" => "Titre1", "lien" => "lien2");
$ligne[] = array("titre" => "Titre1", "lien" => "lien3");
$ligne[] = array("titre" => "Titre2", "lien" => "lien1");
$ligne[] = array("titre" => "Titre2", "lien" => "lien2");
$ligne[] = array("titre" => "Titre3", "lien" => "lien1");
$ligne[] = array("titre" => "Titre3", "lien" => "lien2");
?>[/php]
Ce qui va nous donner sommairement le résultat suivant :
- Titre1
- - lien1
- - lien2
- - lien3
- Titre2
- - lien1
- - lien3
- Titre3
- - lien1
- - lien2
Mais lors de ma requête, je vais récupérer ça sous forme de lignes du genre :
- Titre1 | lien1
- Titre1 | lien2
- Titre1 | lien3
- Titre2 | lien1
etc...
Pour que tu puisses tester, ce système présente une légère différence avec le fonctionnement sur une requête SQL, mais le principe est strictement le même.
Voici :
[php]<?php
$ligne = array();
$ligne[] = array("titre" => "Titre1", "lien" => "lien1");
$ligne[] = array("titre" => "Titre1", "lien" => "lien2");
$ligne[] = array("titre" => "Titre1", "lien" => "lien3");
$ligne[] = array("titre" => "Titre2", "lien" => "lien1");
$ligne[] = array("titre" => "Titre2", "lien" => "lien2");
$ligne[] = array("titre" => "Titre3", "lien" => "lien1");
$ligne[] = array("titre" => "Titre3", "lien" => "lien2");
/* J'établis une variable vide */
$var = "";
/* Je boucle pour créer ma liste en groupant par ensemble de titres */
// pour les besoins de l'exemple, je compte le nombre de lignes dans mon tableau
$n = count($ligne);
for($i = 0; $i < $n; $i++)
{
/* On vérifie la valeur de $var et on compare avec le titre de las ligne */
if($var != $ligne['titre'])
{
/* J'attribue la valeur du titre à ma variable */
$var = $ligne['titre'];
/* J'affiche le titre */
echo("<h4>". $ligne['titre'] ."</h4>\n");
}
/**
* Pas de else, si le titre a la même valeur que la variable $var, je passe directement au
* lien, pas besoin de l'afficher à nouveau.
*/
/* On affiche de toutes façons le lien */
echo("<a href=\"#\" title=\"Lien ". $i ."\">". $ligne['lien'] ."</a>\n");
/* Fin du tour, on reboucle */
}
?>[/php]