IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Impossible d'afficher un séparateur dans la lecture table


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Impossible d'afficher un séparateur dans la lecture table
    Bonjour à tous,

    J'ai une table :

    id - data - cat
    1 - toto - 1
    2 - tata - 1
    3 - titi - 2
    4 - tutu - 3

    Je la parcours avec une boucle while, ok, mais à l'affichage je voudrais insérer un <hr> à chaque changement de cat...
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    $ligne = "";
    $i = 0;
    $sel = mysql_query("SELECT id,data,cat FROM maTable order by id") or die("erreur");
    	while($row = mysql_fetch_row($sel))
    	   {
    	   $i ++;
     
                    $ligne .= $row[1]."\n";
     
                    if ($row[2] > $i) 
    	 	{
    		$ligne .= "<hr color='blue' size='1'>\n";
    		$i = 1;
    		}
    	   }
    echo $ligne;
    Mais ça ne fonctionne pas du tout...
    et je m'arrache bien les cheveux.
    Un coup de main serait vraiment le bienvenu !
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    salut,

    et bienvenue dans le monde de la rupture, telle qu'elle est appellée en programmation!

    il suffit que tu sauvegardes la valeur de cat à chaque passage dans la boucle, et tu compares ensuite la valeur précédente avec la valeur actuelle ...

    Du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sel = mysql_query("SELECT id,data,cat FROM maTable order by id") or die("erreur");
    while($row = mysql_fetch_row($sel)) {
      if (isset($previous_cat) && $previous_cat != $row[2]) {
        echo '<hr color="blue" size="1">' . "\n";
      }
      echo $row[1] . "\n";
      $previous_cat = $row[2];
    }
    Par exemple...
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Waow !!!! Merci, gars, pour ton tuyau, je vais creuser dedans, parce que pour le moment, il est un peu bouché pour meszigues !

  4. #4
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Reprenant ton idée, j'ai mis en place mon bout de script. En fait j'intérroge 2 tables parce que je veux afficher le nom de la catégorie au dessus du <hr> à chaque rupture de catégorie. J'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $sel = mysql_query("SELECT data, cat, nom_cat FROM T1, T2
    WHERE  T1.cat  = T2.id 
    order by cat, data") or die("erreur");
     
    $ligne .= "<b>Catégorie:";
     
    while($row = mysql_fetch_row($sel))
    	{
    	$ligne .= "".$row[2]."</b> <br>";
     
    	if (isset($previous_cat) && $previous_cat != $row[1]) 
     
    	{
    	$ligne .= '<hr color="blue" size="1">' . "\n<br><b>Catégorie: ".$row[2]."</b><br>";
     
    	}
     
    	$ligne .= $row[0] . "\n";
    	$previous_cat = $row[1];
    	}
    	echo $ligne;
    Alors j'ai effectivement
    Catégorie: catégorie
    <hr>
    mais ensuite...le délire commence
    data1 catégorie
    data2 catégorie
    data3 catégorie....etc
    Bref un peu le désordre...Et le <br> m'ennuie, je voudrais les datas alignés séparés seulement de \n...
    Peux tu m'aider à y voir plus clair la dedans ?

Discussions similaires

  1. Impossible d'afficher un rond dans une applet
    Par NutellaPiou dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/02/2009, 16h38
  2. Réponses: 6
    Dernier message: 29/02/2008, 11h13
  3. Réponses: 9
    Dernier message: 20/01/2008, 15h16
  4. Réponses: 6
    Dernier message: 14/06/2007, 12h13
  5. [C#] Impossible d'afficher une form dans la barre des taches
    Par padodanle51 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo