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 :

[SQL] Afficher le résultat d'une table sur 2 colonnes ?


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de tentsuken
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Points : 54
    Points
    54
    Par défaut [SQL] Afficher le résultat d'une table sur 2 colonnes ?
    Bonjour à tous,
    J'aimerais savoir si il est possible d'affiché le resultat d'une requete mysql sur 2 colonne ?

    Voici mon exemple:
    J'ai créer un site internet sur le quel ont entre des articles , leur pris et leurs description:
    visible ici: http://aquaterra85.free.fr/deco.php

    Vous pouvez constater que tout safiche sur une collone , il y a til possibilité de l'afiché sur 2 colonne ?

    Voici mon code:
    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
    <?php
    //connection
    require ("connect.php");
    $db= mysql_connect("$serveur", "$utilisateur", "$mdp")or die ("Ereur de conexion");
    mysql_select_db("$base")or die('ereur de conexion de la bdd');
     
    // requete sql
    $query = "SELECT * FROM `Deco_images` ORDER BY id DESC";
    $result = mysql_query($query);
     
    //mise en boucle
    while ($row = mysql_fetch_array($result)) {
     
    	$id = $row[id];
    	$nom= $row[name];
    	$Entreprise= $row[entreprise];
    	$Activitee= $row[activitee];
    	$Description= $row[description];
    	$lien= "http://aquaterra85.free.fr/images/Deco/$nom.gif";
     
    ?>
          </p>
          <table width="100%" border="0" cellspacing="0" bordercolor="#FFFFFF">
            <tr>
              <td width="135" rowspan="3"><div align="center"><a href="<? echo" $lien"; ?>" target="_blank"><img src="<? echo" $lien"; ?>" width="100" height="100" border="0" /></a></div></td>
              <td width="795"><? echo"$Entreprise";?>&nbsp;</td>
            </tr>
            <tr>
              <td><? echo"$Activitee";?></td>
            </tr>
            <tr>
              <td valign="top"><? echo"$Description";?></td>
            </tr>
          </table>
          <br />
        <?
    //fermeture de la boucle
    }
    // fermeture de la connexion
    mysql_close($db);
    ?>
    Merci d'avance.
    Amicalement,
    Tentsuken

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    Ton problème n'a strictement rien à voir avec ta requête SQL, c'est simplement de la mise en page en (X)HTML/CSS !

    Commence par mettre en place deux colonnes (avec par exemple des blocs <div> flottants), chacune contiendra la moitié de tes enregistrements issus de la base de données.

    Tu auras donc deux boucles d'affichage, une pour chaque moitié de tes enregistrements

    Code PHP : 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
     
    echo '<div id="colonneGauche">';
    /* $i est le nombre d'enregistrements divisé par deux, 
    arrondi à la valeur supérieure en cas de nombre impair */
    $i = ceil(mysql_num_rows($result) / 2);
    while ($i > 0)
    {
        $i--;
        $row = mysql_fetch_array($result);
        // on affiche les données...
    }
     
    echo '</div>';
    echo '<div id="colonneDroite">';
     
    while ($row = mysql_fecth_array($result))
    {
        // on affiche la seconde moitié
    }
     
    echo '</div>';

    Il ne reste maintenant plus que la partie CSS à gérer, par exemple tu peux mettre :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #colonneGauche
    {
        float: left;
    }
    Évidemment il faudra peut-être affiner ça suivant la mise en page souhaitée.

    Et tant que j'y suis, tu devrais aussi créer une fonction, afin de ne pas copier/coller le code d'affichage des données dans chacune des deux boucles.
    Ça permettrait de mettre seulement ceci dans les boucles :
    afficherTableau($row);

  3. #3
    Membre du Club Avatar de tentsuken
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Points : 54
    Points
    54
    Par défaut Merci
    Merci d'avoir pris le temps de me répondre precisement je vais éssayer sa et je te tiens informer

    @bientot

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    Je me suis relu et je viens de me rendre compte qu'il est pas du tout nécessaire d'avoir recours à 2 boucles.
    Ceci est beaucoup plus rapide (et fait la même chose) :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    echo '<div id="colonneGauche">';
    $i = 0;
    while ($row = mysql_fetch_array($result))
    {
    	$i++;
    	// on affiche les données contenues dans $row
    	if ($i == ceil(mysql_num_rows($result) / 2))
    	{
    		echo '</div>';
    		echo '<div id="colonneDroite">';
    	}
    }
    echo '</div>';
    Et tu peux oublier ce que je t'ai dit pour la fonction, ça n'a plus d'intérêt...

  5. #5
    Membre du Club Avatar de tentsuken
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Points : 54
    Points
    54
    Par défaut
    Je c'est que je susi obselette masi je susi juste en train dapprendre le CSS...

    Se site la est docn en HTML / PHP sans CSS

    Voici mon code dans un tableau:
    visible toujours à la meme adresse (sité dans mon 1er message)

    Code php : 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
     
    <table width="100%" border="0" cellspacing="5">
          <tr>
            <td><p>
              <?php
    //connection
    require ("connect.php");
    $db= mysql_connect("$serveur", "$utilisateur", "$mdp")or die ("Ereur de conexion");
    mysql_select_db("$base")or die('ereur de conexion de la bdd');
     
    // requete sql
    $query = "SELECT * FROM `Deco_images` ORDER BY id DESC";
    $result = mysql_query($query);
     
    //$i = ceil(mysql_num_rows($result) / 2);				// nombre d'enregistrement divisé par 2
    //mise en boucle
    while ($row = mysql_fetch_array($result)) {
    	//$i--;
        //$row = mysql_fetch_array($result);
     
    	$id = $row[id];
    	$nom= $row[name];
    	$Entreprise= $row[entreprise];
    	$Activitee= $row[activitee];
    	$Description= $row[description];
    	$lien= "http://aquaterra85.free.fr/images/Deco/$nom.gif";
     
    ?>
            </p>
              <table width="100%" border="0" cellspacing="0" bordercolor="#FFFFFF">
                <tr>
                  <td width="135" rowspan="3"><div align="center"><a href="<? echo" $lien"; ?>" target="_blank"><img src="<? echo" $lien"; ?>" width="100" height="100" border="0" /></a></div></td>
                  <td width="795"><? echo"$Entreprise";?>&nbsp;</td>
                </tr>
                <tr>
                  <td><? echo"$Activitee";?></td>
                </tr>
                <tr>
                  <td valign="top"><? echo"$Description";?></td>
                </tr>
              </table>
              <br />
              <?
    //fermeture de la boucle
    }
    // fermeture de la connexion
    mysql_close($db);
    ?></td>
            <td><p>
              <?php
    //connection
    require ("connect.php");
    $db2= mysql_connect("$serveur", "$utilisateur", "$mdp")or die ("Ereur de conexion");
    mysql_select_db("$base")or die('ereur de conexion de la bdd');
     
    // requete sql
    $query2 = "SELECT * FROM `Deco_images` ORDER BY id DESC";
    $result2 = mysql_query($query2);
     
    //mise en boucle
    while ($row2 = mysql_fetch_array($result2)) {
     
    	$id2 = $row2[id];
    	$nom2= $row2[name];
    	$Entreprise2= $row2[entreprise];
    	$Activitee2= $row2[activitee];
    	$Description2= $row2[description];
    	$lien2= "http://aquaterra85.free.fr/images/Deco/$nom2.gif";
     
    ?>
            </p>
              <table width="100%" border="0" cellspacing="0" bordercolor="#FFFFFF">
                <tr>
                  <td width="135" rowspan="3"><div align="center"><a href="<? echo" $lien2"; ?>" target="_blank"><img src="<? echo" $lien2"; ?>" width="100" height="100" border="0" /></a></div></td>
                  <td width="795"><? echo"$Entreprise2";?>&nbsp;</td>
                </tr>
                <tr>
                  <td><? echo"$Activitee2";?></td>
                </tr>
                <tr>
                  <td valign="top"><? echo"$Description2";?></td>
                </tr>
              </table>
              <br />
              <?
    //fermeture de la boucle
    }
    // fermeture de la connexion
    mysql_close($db2);
    ?></td>
          </tr>
        </table>

    Ya til moyen de trier les afichage affichage 1/2 par collone ? les deux methode enoncer ne focntionen pas :s merci de votre comprehension et de votre aide
    Tentsuken

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Essaie avec ça:

    Je me suis servi de modulo... (% dans if ((($i-1)%2) == 0) echo "<tr>"; )

    Code PHP : 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
    <table width="100%" border="0" cellspacing="5">
     
    <?php
    	// Connexion
    	require ("connect.php");
    	$db= mysql_connect("$serveur", "$utilisateur", "$mdp")or die ("Ereur de conexion");
    	mysql_select_db("$base")or die('ereur de conexion de la bdd');
     
    	// Requête MySQL
    	$query = "SELECT * FROM `Deco_images` ORDER BY id DESC";
    	$result = mysql_query($query);
     
    	$i = 1; 
     
    	while ($row = mysql_fetch_array($result)) {
     
    		$id = $row["id"];
    		$nom= $row["name"];
    		$Entreprise= $row["entreprise"];
    		$Activitee= $row["activitee"];
    		$Description= $row["description"];
    		$lien= "http://aquaterra85.free.fr/images/Deco/$nom.gif";
     
    		// Si c'est le nombre n'est pas pair, on ouvre la ligne du tableau
    		if ((($i-1)%2) == 0) echo "<tr>";
     
    ?>
    <td width="50%">
      <table width="100%" border="0" cellspacing="0" bordercolor="#FFFFFF">
    	<tr>
    	  <td width="20%" rowspan="3"><div align="center"><a href="<? echo" $lien"; ?>" target="_blank"><img src="<? echo" $lien"; ?>" width="100" height="100" border="0" /></a></div></td>
    	  <td width="80%"><? echo"$Entreprise";?>&nbsp;</td>
    	</tr>
    	<tr>
    	  <td><? echo"$Activitee";?></td>
    	</tr>
    	<tr>
    	  <td valign="top"><? echo"$Description";?></td>
    	</tr>
      </table>
      <br />
    </td>
    <?
     
    		// Si c'est un nombre pair, on ferme la ligne du tableau
    		if ((($i-1)%2) == 1) echo "</tr>";
     
    		$i++; 
    	}
     
    	// Fermeture de la connexion MySQL en cours
    	mysql_close($db);
     
    ?>
     
    </table>

  7. #7
    Membre du Club Avatar de tentsuken
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Points : 54
    Points
    54
    Par défaut Merci pour votre aide
    Well, tout ceci focntionne très bien du 1er coup je te remercie pour ton aide

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

Discussions similaires

  1. [SQL] Afficher le résultat d'une requete en Image ?
    Par cedinfo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2006, 14h28
  2. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20
  3. [SQL] Afficher quelques enregistrements d'une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 09/08/2006, 10h46
  4. Réponses: 5
    Dernier message: 14/06/2006, 15h19

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