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

Langage PHP Discussion :

[PHP-JS] Un While découpé ...


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut [PHP-JS] Un While découpé ...
    Bonjour à tous.

    Voilà, j'ai un petit souci, j'aimerais décomposé une boucle par nombre de résultat. En fait, tout les 5 résultat, j'aimerais l'afficher dans un nouveau div, je vous montre exactement ce que je voudrais faire dans le script suivant :

    Voilà d'abord la requète sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "select ecoles.id,ecoles.nom_ecole FROM ecoles LEFT OUTER JOIN blogs ON blogs.id_blog=ecoles.id_blog WHERE id > 0";
    $result1 = mysql_query($sql) ;
    et voici l'affichage que je souhaiterais avoir
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    	<div id="menu_0" class="on content">
    		<h1>Liste 1</h1>
    		<p>
    		<?php
    while($row = mysql_fetch_assoc($result1) & mysql_num_rows($result1)<5){
    echo $row["nom_ecole"]."<br />";
    }
     
    ?>
    		</p>
    	</div>
    	<div id="menu_1" class="off content">
    		<h1>Liste 2</h1>
    		<p>
                    Ecoles 5<br />
    		Ecoles 6<br />
    		Ecoles 7<br />
    		Ecoles 8
    		</p>
    	</div>
    	</p>
    	<div id="menu_2" class="off content">
    		<h1>Liste 3</h1>
    		<p>
                    Ecoles 9<br />
    		Ecoles 10<br />
    		Ecoles 11<br />
    		Ecoles 12
    		</p>
    	</div>
     
    	<div id="menu_3" class="off content">
    		<h1>Liste 4</h1>
    		<p>
    		Ecoles 13<br />
    		Ecoles 14<br />
    		Ecoles 15<br />
    		Ecoles 16
    		</p>
    	</div>
    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Salut, si tu veux faire des affichages tous les 5 résultats, tu peux utiliser l'opérateur %. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for ($i = 0; $i < 100; $i++)
    {
       if ($i % 5 == 0) // Signifie : Si le reste de $i divisé par 5 vaut 0 (donc si $i est multiple de 5)
       {
          echo $i . '<br />';
       }
    }
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Citation Envoyé par genova
    Salut, si tu veux faire des affichages tous les 5 résultats, tu peux utiliser l'opérateur %. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for ($i = 0; $i < 100; $i++)
    {
       if ($i % 5 == 0) // Signifie : Si le reste de $i divisé par 5 vaut 0 (donc si $i est multiple de 5)
       {
          echo $i . '<br />';
       }
    }
    +1

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    merci je vais essayé ça

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    jdois avoir du mal ce matin, mais j'arrive pas à l'appliquer à mon cas. En fait, à chaque DIV créé, il doit affecté l'id "menu_1" pour le premier "menu_2" pour le second etc... Et pour les résultat, c'est pareil, j'arrive pas à limiter. Aidez moi svp

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    personne n'a une idée? j'ai essayé de le mettre en place avec la boucle for mais je bloque. Je ne vois pas comment integrer cette condition à ma boucle de départ

  7. #7
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    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
    $nbElems = 5;
    $numListe = 0;
     
    for ($i = 0; $i < mysql_num_rows($result1); $i++) {
      if (($i % $nbElems) == 0) {
        echo '<div id="menu_' . $i . '" class="on content"><h1>Liste ' . ($i + 1) . '</h1><p>';
        $numListe++;
      }
     
      $row = mysql_fetch_assoc($result1);
      echo $row['nom_ecole'];
     
      if (($i % $nbElems) != ($nbElems - 1)) {
        echo  '<br />';
      }
     
      if ((($i % $nbElems) == ($nbElems - 1)) or ($i == (mysql_num_rows($result1) - 1))) {
        echo '</p></div>';
      }
    }
    résultats non garantis
    Dia [ Page DVP ] [ Site pro ]

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut Enfin réussi
    J'ai réussi à trouver la solution. Je vous donne mon code si des personnes veulent tester ou peut être même l'optimiser. Il s'agit d'un tableau qui affiche à son haut des onglets qui permet d'afficher des résultats de manière divisée. C'est un jeu de css couplé avec du javascript.

    Dans la partie head
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <script type="text/javascript">
    <!--
    function multiClass(eltId) {
    	arrLinkId = new Array('_0','_6','_12','_18','_24','_30');
    	intNbLinkElt = new Number(arrLinkId.length);
    	arrClassLink = new Array('current','ghost');
    	strContent = new String()
    	for (i=0; i<intNbLinkElt; i++) {
    		strContent = "menu"+arrLinkId[i];
    		if ( arrLinkId[i] == eltId ) {
    			document.getElementById(arrLinkId[i]).className = arrClassLink[0];
    			document.getElementById(strContent).className = 'on content';
    		} else {
    			document.getElementById(arrLinkId[i]).className = arrClassLink[1];
    			document.getElementById(strContent).className = 'off content';
    		}
    	}	
    }
    -->
    </script>
     
    <style type="text/css" media="screen" title="styles">
    #container {
    font: 12px Arial, Helvetica, sans-serif;
    	position: relative;
    	width: 100%;
    	margin-top:-0px; 
    	margin-bottom:-0px
    	text-align: left;
    	background-image:url(../images/img_48.gif);
    	background-color: #E1A4A4;
    }
    #container * {
    	margin: 0;
    	padding: 0;
    }
    #container ul#menu {
    	margin: 0 0 0 0;
    	position: relative;
    	width: 150px;
    	font-weight: bold;
    }
    #container ul#menu li {
    margin: 0 0 0 0;
    	float: left;
    	display: inline;
    }
    #container ul#menu li a {
    margin: 0 0 0 0;
    	text-align: center;
    	display: block;
    	width: 25px;
    	height: 25px;
    	line-height: 25px;
    	text-decoration: none;
    }
    #container ul#menu li a:hover {
    margin: 0 0 0 0;
    	background-color: #EFDC86;
    }
    #container h1,
    #container h2 {
    	margin: 0.5em 0 0.5em 0;
    font: 12px Arial, Helvetica, sans-serif;
    }
    #container .content {
    	padding: 1em 2em;
    	margin: -8px 0 0 0;
    	_margin: -16px 0 0 0;
    	background-image:url(../images/img_48.gif);
    }
    #container hr {
    	clear: both;
    	visibility: hidden;
    }
    #container a.current {
    	background-image:url(../images/img_48.gif);
    	color: #000;
    }
    #container a.ghost  {
    	background-color: #DC9797;
    	color: #000;
    }
    #container .on {
    font: 12px Arial, Helvetica, sans-serif;
    	display: block;
    }
    #container .off {
    	display: none;
    }
    </style>
    Dans le body :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    $query = "SELECT count(ecoles.id) FROM ecoles WHERE id > 0"; //on compte les écoles
    $nbreecole = mysql_result(mysql_query($query),0); //variable du nombre d'écoles
     
    <div id="container">
            <ul id="menu">
    	<? //défini les numéros et les classes css des onglets
    for($k = 0; $k < $nbreecole; $k++)
    {  
            if ($k % 6 == 0) 
            {
    		static $nb=0;
    		$nb++;
    		?>
    		<li class="menu<? echo $nb; ?>">
    		<a href="#" id="_<? echo $k; ?>" class="<? 
    		if ($k == 0) 
    		{ 
    		        echo "current";
    		} 
    		else 
    		{ 
    			echo "ghost";
    		}?>" onclick="multiClass(this.id)" alt="<? echo $nb; ?>"><? echo $nb; ?></a>
    		</li>
    		<?
    	}
    }
    ?>
    </ul>
    <hr />
    <? // affichage des écoles par tranche de 6
    for ($i = 0; $i < $nbreecole; $i++) 
    {  
             if ($i % 6 == 0) 
            {
    	        $sql = "select ecoles.id,ecoles.nom_ecole,ecoles.id_blog,blogs.url,blogs.nom_blog FROM ecoles LEFT OUTER JOIN blogs ON blogs.id_blog=ecoles.id_blog WHERE id > 0 ORDER BY ecoles.id LIMIT ". $i . ",6";
    	        $result2 = mysql_query($sql);
                    ?>
    	        <div id="menu_<? echo $i ?>" class="<? 
    	        if ($i == 0) 
                    { 
    		        echo "on content";
    	        } 
    	        else 
    	        { 
    		        echo "off content";
    	        } 
                    ?>">
                    <?
    	        while($row = mysql_fetch_assoc($result2))
                    {
    	                if (!isset($row["id_blog"]))
    	                {
    		                echo $row["nom_ecole"] ."</a><br />";
    	                }
                            else
    	                {
    	         	        echo "<a href='".$row["url"]."' alt='".$row["nom_blog"]. "'>" .$row["nom_ecole"] ."</a> <br />";
    	                }
    	        } ?>
                    </div>
                    <?
            }	
    } 
    ?>		
    </div>

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Il faut remplacer les <? par des <?php ...

    Ensuite tu écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li class="menu<? echo $nb; ?>">
    Ce qui est doublement faux, d'une part pour ce que j'ai écris au dessus, et d'autre part car tu n'as défini que des id et aucune class.
    Et ce n'est pas le seul exemple ...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    ben si ma class est menu1, menu2 etc..., jcomprends pas trop ce que tu veux dire...

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <style type="text/css" media="screen" title="styles">
    #container {
    font: 12px Arial, Helvetica, sans-serif;
    	position: relative;
    	width: 100%;
    	margin-top:-0px; 
    	margin-bottom:-0px
    	text-align: left;
    	background-image:url(../images/img_48.gif);
    	background-color: #E1A4A4;
    }
    #container * {
    	margin: 0;
    	padding: 0;
    }
    #container ul#menu {
    	margin: 0 0 0 0;
    	position: relative;
    	width: 150px;
    	font-weight: bold;
    }
    #container ul#menu li {
    margin: 0 0 0 0;
    	float: left;
    	display: inline;
    }
    #container ul#menu li a {
    margin: 0 0 0 0;
    	text-align: center;
    	display: block;
    	width: 25px;
    	height: 25px;
    	line-height: 25px;
    	text-decoration: none;
    }
    #container ul#menu li a:hover {
    margin: 0 0 0 0;
    	background-color: #EFDC86;
    }
    #container h1,
    #container h2 {
    	margin: 0.5em 0 0.5em 0;
    font: 12px Arial, Helvetica, sans-serif;
    }
    #container .content {
    	padding: 1em 2em;
    	margin: -8px 0 0 0;
    	_margin: -16px 0 0 0;
    	background-image:url(../images/img_48.gif);
    }
    #container hr {
    	clear: both;
    	visibility: hidden;
    }
    #container a.current {
    	background-image:url(../images/img_48.gif);
    	color: #000;
    }
    #container a.ghost  {
    	background-color: #DC9797;
    	color: #000;
    }
    #container .on {
    font: 12px Arial, Helvetica, sans-serif;
    	display: block;
    }
    #container .off {
    	display: none;
    }
    </style>
    Tu trouves un .menu1, .menu2 etc ... dans ton code ? ^_^

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    Ben oui regarde, c'est ça qui fé tout :

    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
    #container ul#menu li {
    margin: 0 0 0 0;
    	float: left;
    	display: inline;
    }
    #container ul#menu li a {
    margin: 0 0 0 0;
    	text-align: center;
    	display: block;
    	width: 25px;
    	height: 25px;
    	line-height: 25px;
    	text-decoration: none;
    }
    #container ul#menu li a:hover {
    margin: 0 0 0 0;
    	background-color: #EFDC86;
    }
    et le javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strContent = "menu"+arrLinkId[i];

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Donc tous tes menus seront identiques ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    ben non, il y a justement un changement de couleur si tu as cliqué ou non sur l'onglet. Moi je l'ai testé dans plusieurs conditions et apparemment aucuns pb

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Problème imbrication while
    Par shelko dans le forum Langage
    Réponses: 5
    Dernier message: 16/05/2007, 17h11
  2. Réponses: 15
    Dernier message: 11/05/2007, 16h28
  3. [PHP-JS] Création array javascript dans un while en php
    Par D_ident_1 dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2007, 12h16
  4. [Mail] boucle do while et mail php
    Par cseb73 dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2006, 00h51
  5. [PHP-JS] pb boucle while
    Par kodokan dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2006, 00h25

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