Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/05/2007, 14h08   #1
Membre à l'essai
 
Avatar de tentsuken
 
Inscription : mai 2007
Messages : 89
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 89
Points : 23
Points : 23
Envoyer un message via MSN à tentsuken
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 :
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
tentsuken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 15h05   #2
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
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 :
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 :
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 Debian
[ C | C++ | PHP | Python ]
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 17h49   #3
Membre à l'essai
 
Avatar de tentsuken
 
Inscription : mai 2007
Messages : 89
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 89
Points : 23
Points : 23
Envoyer un message via MSN à tentsuken
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
tentsuken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 19h20   #4
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
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 :
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...
__________________
<3 Debian
[ C | C++ | PHP | Python ]
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 14h55   #5
Membre à l'essai
 
Avatar de tentsuken
 
Inscription : mai 2007
Messages : 89
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 89
Points : 23
Points : 23
Envoyer un message via MSN à tentsuken
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 :
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
tentsuken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 20h10   #6
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 4
Points : 4
Essaie avec ça:

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

Code PHP :
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>
simonoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 09h58   #7
Membre à l'essai
 
Avatar de tentsuken
 
Inscription : mai 2007
Messages : 89
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2007
Messages : 89
Points : 23
Points : 23
Envoyer un message via MSN à tentsuken
Par défaut Merci pour votre aide

Well, tout ceci focntionne très bien du 1er coup je te remercie pour ton aide
tentsuken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h50.


 
 
 
 
Partenaires

Hébergement Web