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 :

modulo et colonnes [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut modulo et colonnes
    Bonjour.

    J'ai quelques problème à résoudre le modulo.
    Une boucle pour avoir x colonnes et passer à la ligne suivante.

    Mon code au lieux de fonctionner en fonction des colonnes,
    il fonctionne pour les lignes. C'est pas ce que veux.

    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
    			$nbcolonne=7;
    			$i=0;
    			$line=array();
     
    			while($arow=mysqli_fetch_array($ars)){
     
            $r=$i%$nbcolonne;
     
            if(!isset($line[$r]))
              $line[$r]='';
     
            $line[$r] .= '<td align="center" valign="top" class="content">'.$arow['article'].'</td>';
            $i++;
     
    			} // end while
     
    				echo '<table>';
     
    				foreach($line as $s) 
              echo '<tr>'.$s.'</tr>';
     
    				echo '</table>';

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Tien voilà un code qui pourrait te servir :
    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
    <?php
     
    $data = range('A', 'Z');
     
    $nb_col_max = 5;
    $i = -1;
    $table = array();
     
    $table[] = '<table>';
     
    foreach($data as $value) {
       if (++$i === $nb_col_max) {
          $table[] = '</tr>';
          $i = 0;
       }
       if ($i === 0) {
          $table[] = '<tr>';
       }
       $table[] = "<td>$value</td>";
    }
    // on complète avec des cellules vides si nécessaire
    if ($i < $nb_col_max) {
       while(++$i < $nb_col_max) {
          $table[] = '<td></td>';
       }
       $table[] = '</tr>';
    }
    $table[] = '</table>';
     
    echo implode("\n", $table);
    ?>
    à toi d'adapter.

  3. #3

  4. #4
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Merci pour vos astuces, ça peut me servir.

    J'ai fini par patenter quelque chose qui marche bien et qui soit simple.

    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
     
          $nb = 4;               
          echo'<table>';
          $i = 1;
     
            while($arow=mysqli_fetch_array($ars)){
     
              if($i == 1) { echo'<tr>'; }
                echo'<td class="content">'.$arow['article'].'</td>';
                $i++;
                if($i > $nb) { echo'</tr>'; $i = 1; }
     
            } // end while
     
          echo'</table>';
    Class="content" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      td.content { min-width:100px; height:60px; background-color:blue; border:3px solid green; }
    Images attachées Images attachées  

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Attention ton code n'est pas bon.
    Tu ne clôtures pas correctement tes lignes et il te manque des colonnes vides pour préserver la structure du tableau.

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Voici mon code adapté au tien :
    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
    <?php
     
    $nb = 4;
    $i  = 0;
     
    echo'<table>';
     
    while($arow = mysqli_fetch_array($ars)) {
       if ($i === $nb) {
          echo '</tr>';
          $i = 0;
       }
       if ($i === 0) {
          echo '<tr>';
       }
       echo '<td class="content">'.$arow['article'].'</td>';
       ++$i;
    }
    // on complète avec des cellules vides si nécessaire
    if ($i < $nb) {
       while(++$i < $nb) {
          echo '<td></td>';
       }
       echo '</tr>';
    }
    echo'</table>';
     
    ?>

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

Discussions similaires

  1. Cryptage de colonnes sous Oracle
    Par Julian Roblin dans le forum SQL
    Réponses: 9
    Dernier message: 28/11/2006, 18h24
  2. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  3. Dimensions des colonnes d'un TDBGrid
    Par osmose22 dans le forum C++Builder
    Réponses: 4
    Dernier message: 11/12/2002, 11h27
  4. JBuilder7 & JTable Colonne alignement
    Par Tonton Luc dans le forum JBuilder
    Réponses: 5
    Dernier message: 06/11/2002, 17h32
  5. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 11h35

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