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 :

Répartir un jeu d'essai en 2 colonnes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut Répartir un jeu d'essai en 2 colonnes
    bonjour j'ai un jeu d'essai d'environ 20 lignes (pas beaucoup)

    j'aimerai faire une présentation sur 2 colonnes !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table>
    <tr>
    <td>
    1 colonne
    </td>
    <td>
    2 colonne
    </td>
    </tr>
    </table>
    mais comment faire pour répartir les informations ?
    je veux juste afficher un nom. (1 champ)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($result_nom = mysqli_query($link, 'select nom from animaux')) 
    {
    $tab_noms = mysqli_fetch_assoc($result_nom);
    }
    merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Salut

    Il doit y avoir 3 milliards de solutions si tu prends un peu le temps de chercher.

    En live sans tests, juste pour te donner un pt de départ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $result_nom = mysqli_query($link, 'select nom from animaux') ;
    $animaux = array();
    while ($tab_noms = mysqli_fetch_assoc($result_nom) {
       $animaux[] = (isset($tab_noms['nom']))? $tab_noms['nom'] : "" ;
    }
     
    echo '<table>';
    foreach ($animaux as $key => $animal) {
       $col1 = $animal[$key] ;
       $col2 = (array_key_exists($key+1))?  $animal[$key+1] : "" ;
       echo '<tr><td>' .$col1. '</td><td>' .  $col2. '</td></tr><br/>';
    }
    echo '</table>';
    Nota1: Auquel cas le fetch_assoc ne sert à rien tel quel, et peut éventuellement être complété de l'option MYSQL_NUM, ce qui éviterait de passer par le tableau $animaux. Mais comme je ne connais pas les instructions my_sqli, je te laisse chercher les optimisations.

    Nota2: tu peux aussi coder beaucoup plus proprement que ça, par ex en utilisant la fonction next

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    Merci de ton aide mais tu veux pas m'aider à coder proprement ?
    un code à la rache ne m'intéresse pas.

    C'est toi qui le dis:

    Nota2: tu peux aussi coder beaucoup plus proprement que ça, par ex en utilisant la fonction next

  4. #4
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    C'est une plaisanterie j'espère, l'aide, tu l'as juste au-dessus.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    ok, merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    j'ai fais un ptit exemple mais j'ai ce message:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: array_key_exists() expects exactly 2 parameters
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $animaux[] = array('chien', 'chat', 'lapin', 'cheval'); 
    echo '<table>';
    foreach ($animaux as $key => $animal) {
       $col1 = $animal[$key] ;
       $col2 = (array_key_exists($key+1))?  $animal[$key+1] : "" ;
       echo '<tr><td class="moitie">' .$col1. '</td><td class="moitie">' .$col2. '</td></tr><br/>';
    }
    echo '</table>';
    et sa m'affiche que chien pourquoi ?

  7. #7
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    1) parce que tu ne fais aucun effort de recherche.

    2) parce que j'ai oublié de préciser le nom du tableau dans lequel il faut chercher si la clé existe.

    3) Voir le manuel sur le sujet.

    il faut donc modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $col2 = (array_key_exists($key+1, $animaux))?  $animal[$key+1] : "" ;

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    après tes recherches le résultat donne:

    chien

    c'est pas que je cherche pas, j'ai que j'ai du mal à comprendre, je me sens pas à l'aise. J'ai du mal à comprendre pourquoi il y a que chien qui s'affiche aussi.
    Je suis peut être pas doué désolé.

  9. #9
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    pas correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $animaux[] = array('chien', 'chat', 'lapin', 'cheval');
    correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $animaux = array('chien', 'chat', 'lapin', 'cheval');

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $animaux = array('chien', 'chat', 'lapin', 'cheval');
    echo '<table>';
    foreach ($animaux as $key => $animal) {
    	$col1 = $animal[$key] ;
    	$col2 = (array_key_exists($key+1, $animaux)) ?  $animal[$key+1] : "" ;
    	echo '<tr><td class="moitie">' .$col1. '</td><td class="moitie">' .$col2. '</td></tr><br/>';
    }
    echo '</table>';
    résultat:
    c h
    h a
    p i
    v

    ...

  11. #11
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Félicitations, encore une fois, tu ne cherches pas par toi-même et tu attends passivement de recevoir une solution toute faite:

    Je te la mets uniquement parce que j'ai pu t'induire en erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $animaux = array(0 => 'chien', 1 =>'chat', 2 => 'lapin', 3 => 'cheval');
    
    print_r($animaux) ;
    
    echo '<table>';
    foreach ($animaux as $key => $animal) {
    	$col1 = $animaux[$key] ;
    	$col2 = (array_key_exists($key+1, $animaux)) ?  $animaux[$key+1] : "" ;
    	echo '<tr><td>' .$col1. '</td><td>' .$col2. '</td></tr><br/>';
    }
    echo '</table>';
    
    ?>

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    j'ai pas le temps de bien chercher, je regarderai beaucoup mieux lundi, mais le résultat donne:

    chien chat
    chat lapin
    lapin cheval
    cheval

    ce n'est toujours pas bon snif.

    de plus si je fais un exemple avec les données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $animaux = array(0 => 'chien', 1 =>'chat', 2 => 'lapin', 3 => 'cheval');
    c'est obligé de mettre le 0 - 1 - 2 - 3 ?

    car biensur après je récupèrerai les données avec la base de données mais comment faire pour mettre 0 - 1 - 2 - 3 ? enfin je veux dire je ne sais pas à l'avance combien il y a de noms.

  13. #13
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Au passage, j'ai trouvé ça sur ce site.

    Et ce code fonctionne avec en cadeau bonus :
    - 2 solutions différentes parmi 3 milliards et demi
    - le choix du nb de colonnes d'affichage pour la première solution :
    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
     
    <?php
     
    // Ton tableau (pas besoin d'index)
    $animaux = array('chien', 'chat', 'lapin', 'cheval', 'babouin');
     
    // La tu mets le nombre de colonnes sur lequel tu veux faire afficher ton tableau
    $nb_col = 2 ;
     
    // initialisations
    $indice = 0;
    $count = count($animaux)  ;
    $pair = (($count+1)%2 == 1) ? true: false ;
    $val_pair = ($pair) ? 'pair' : 'impair' ;
    $nb_lig = ($pair)? intval( $count / $nb_col) : intval( $count / $nb_col) + 1 ;
     
    // Debug
    //echo '<pre>'; print_r($animaux) ; echo '</pre>' ;
    //echo "<br/>nbre de valeurs : $val_pair" ;
     
     
    // Affichage de la table
    echo '<br/><b>Premiere solution</b><br/><table>';
    for ($i = 0; $i < $nb_lig ; $i++) {
    	echo '<tr>';
    	for ($j = 0; $j < $nb_col ; $j++) {
    		echo '<td>' ;
    			$affichage = (isset($animaux[$indice]))? $animaux[$indice] : "" ;
    			echo $affichage ;
    			$indice++;
    		echo '</td>' ;
    	}
    	echo '</tr>';
    }
    echo '</table>';
     
    // Autre solution
    $indice=0;
    echo '<br/><b>Autre solution</b><br/><table>';
    foreach($animaux as $animal) {
     
    	echo '<tr>';
    		// 1ere colonne
    		echo '<td>' ;
    			echo  $animaux[$indice] ;
    		echo '</td>' ;
    		// 2eme colonne
    		echo '<td>' ;
    			echo  $animaux[$indice+1] ;
    		echo '</td>' ;
    	echo '</tr>';
     
    	$indice +=2 ;
    }
    echo '</table>';
     
    ?>

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Par défaut
    je te remercie beaucoup !

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

Discussions similaires

  1. Supprimer des colonnes d'un jeu de données
    Par Ahenzegaga dans le forum R
    Réponses: 2
    Dernier message: 09/12/2012, 12h40
  2. répartir le contenu d'une colonne sur plusieurs colonnes
    Par thierry.drot dans le forum Excel
    Réponses: 1
    Dernier message: 28/10/2012, 12h12
  3. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 18h35
  4. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 12h35

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