Css affichage 2 colonne

Résolu/Fermé
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - 6 sept. 2009 à 17:42
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - 27 sept. 2009 à 22:23
Bonjour a tous,
je recupere toute les valeurs de ma table de données et j aimerais afficher les valeurs dans un tableau de 2 ou 3 colonne est ce posssible?

Merci de votre aide
A voir également:

33 réponses

Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
6 sept. 2009 à 19:46
Bonjour,

Je vais partir du principe que vous avez des connaissances en php alors je ne ferai pas de grosses explications.

Supposons que vous ayez 90 entrées et que vous souhaitiez les afficher sur trois colonnes. Vous faites trois requêtes mysql avec une limite. Je m'explique.
Première requête à placer dans la première colonne: afficherait les entrées de 0 à 30
Deuxième requête à placer dans la seconde colonne: afficherait les entrées de 31 à 60
Troisième requête à placer dans la troisième colonne: afficherait les entrées de 61 à 90.

Il est tout à fait possible de faire quelque chose de plus dynamique:
Toujours trois requêtes seulement les limites seraient fixées dynamiquement avec des divisions selon le nombre d'entrées dans la bdd.

Bonne continuation.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
6 sept. 2009 à 20:41
Bonjour

Merci de votre reponse

J ai des bases en php je ne suis pas un expert

Non mais les entree dans ma base sont variable elle peux contenir 15 ligne comme 90lignes

Donc je pense que la 2eme solution est la meilleur

Pourriez vous me donner un peux plus d info?

Merci de votre aide
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
7 sept. 2009 à 00:26
Bonjour,

Pfiouh. Enfin fini. Il vous suffira d'adpater ce que j'ai fait pour vos besoins. J'ai mis tous les commentaires nécessaires. Je reste à votre disposition dans le cas où vous auriez besoin d'aide.

<?php
$r1 = mysql_query("SELECT COUNT(*) AS compter FROM table");
$r2 = mysql_fetch_array($r1);
// ici, on a compté le nombre total d'entrée
// $r2['compter'] : c'est le nombre total

// on divise par trois pour trois colonnes
$division = $r2['compter'] / 3; // par ex, si 90 entrée = 30
if ($division%2) { // si impaire
	$division = $division - 1; // on enlève 1 pour avoir un chiffre pair
}

// cette partie fera une limite de 0 à 30
$limite1 = 0; // première limite commence à 0
$limite2 = $division; // on suppose que c'est trente

// cette partie fera une limite de 31 à 90 
$limite3 = $division + 1; // donc 31
$limite4 = $division * 2; // donc 60

// cette partie fera une limite de 61 à 90
$limite5 = $division + $division + 1; // donc 61
$limite6 = $division * 3; // donc 90
if ($division%2) { // si impaire
$limite6++; // on ajoute +1 qu'on a enlevé plus haut
}
?>

<table>
	<tr>
		<td> <!-- Première colonne -->
			<?php  
			$requete1 = mysql_query("SELECT * FROM table LIMIT ".$limite1.", ".$limite2.""); // on affiche les entrées de 0 à 30
			while ($resultat1 = mysql_fetch_array($requete1)) { // boucle d'affichage
			
			}
			?>
             
		</td>
		<td><!-- Deuxième colonne -->
			<?php  
				$requete2 = mysql_query("SELECT * FROM table LIMIT ".$limite3.", ".$limite4.""); // on affiche les entrées de 31 à 60
				while ($resultat2 = mysql_fetch_array($requete2)) { // boucle d'affichage
				
				}
			?>
        </td>
		<td><!-- Troisième colonne -->
			<?php  
				$requete3 = mysql_query("SELECT * FROM table LIMIT ".$limite5.", ".$limite6.""); // on affiche les entrées de 61 à 90
				while ($resultat3 = mysql_fetch_array($requete3)) { // boucle d'affichage
				
				}
			?>
		</td>
	</tr>
</table>


Je n'ai pas testé alors si ça bug quelque part, c'est possible.

Bonne nuit.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
7 sept. 2009 à 17:30
Merci de ta reponse c est tres gentil

Mais il y a un petyit probleme

a cette ligne

<?php
$requete1 = mysql_query("SELECT * FROM voiture LIMIT ".$limite1.", ".$limite2.""); // on affiche les entrées de 0 à 30
while ($resultat1 = mysql_fetch_array($requete1)) { // boucle d'affichage
?>
<?php echo $resultat1['idd']; ?>

<?php }
?>
idem pour la 2et 3eme colonne

cette erreur
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.232/gautomob/www/3c.php on line 44

j ai essaaier de chercher mais je ne trouve pas

merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
7 sept. 2009 à 18:35
Bonjour,

Pourriez-vous modifier par ceci:
$requete1 = mysql_query("SELECT * FROM voiture LIMIT ".$limite1.", ".$limite2."") or die(mysql_error()); 
// on affiche les entrées de 0 à 30 


Et me donner l'erreur que ça retourne.

Merci.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
7 sept. 2009 à 20:05
voici l'erreur

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0.66666666666667' at line 1

Merci de votre aide
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
7 sept. 2009 à 21:47
Bonsoir,

Combien de d'entrées avez-vous dans la BDD ?
Pouvez-vous ajouter un:
or die(mysql_error())

aux autres requêtes et me donner les erreurs ? J'aimerais vérifier quelque chose.

Et est-ce possible d'avoir le code complet de votre page que je puisse situer la chose ?

Merci.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 16:44
desole mais ton code fonctionne bien j avais pas trop le temps hier soir alors j ai fait trop vite

Par contre j ai un petit souci avec l affichage

j ai un peu remodifier ton code pour un affichage a 2 colonne car 3 c est trop large

Mais si il y a un nombre impair le dernier resultat se fait sur la 2eme colonne pourquoi pas sur la 1er?

voici mon code


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>fff</title>
<meta name="keywords" content="fff" />
<meta name="description" content="ffff" />
<link href="templatemo_style.css" rel="stylesheet" type="text/css" />
<link href="cssv.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript">
function clearText(field){

if (field.defaultValue == field.value) field.value = '';
else if (field.value == '') field.value = field.defaultValue;

}
</script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-10494080-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<style type="text/css">
<!--
body {
background-image: url(images/templatemo_bg2.jpg);
background-color: #000000;
}
.Style1 {
color: #FF8000;
font-weight: bold;
font-size: 14px;
}
-->
</style></head>
<body>
<div id="templatemo_container">
<div id="templatemo_banner">

</div>
<!-- fin du banner -->

<div id="templatemo_menu">
<ul>
<li><a href="index.php" ><span></span>Acceuil</a></li>
<li><a href="presentation.php"><span></span>Présentation</a></li>
<li><a href="voitures.php" class="current"><span></span>Nos voitures</a></li>
<li><a href="entretien.php"><span></span>Entretien</a></li>
<li><a href="depannage.php"><span></span>Dépannage</a></li>
<li><a href="accidente.php"><span></span>Accidenté</a></li>
<li><a href="contact.php"><span></span>Contact</a></li>

</ul>
</div> <!-- fin menu menu -->

<div id="templatemo_content_wrapper">
<div id="templatemo_content">
<div id="imagedefil">

</div>
<!-- fin de a column -->
<div class="column_w430g fl ">
<div class="header_01">Nos voitures </div>

<div class="latest_news">
<div class="header_02"><a href="#"></a></div>

<p>

<?php
require "connect.php";
$r1 = mysql_query("SELECT COUNT(*) AS compter FROM voiture");
$r2 = mysql_fetch_array($r1);
// ici, on a compté le nombre total d'entrée
// $r2['compter'] : c'est le nombre total

// on divise par 2 pour 2 colonnes
$division = $r2['compter'] / 2; // par ex, si 90 entrée = 45
if ($division%2) { // si impaire
$division = $division - 1; // on enlève 1 pour avoir un chiffre pair
}

// cette partie fera une limite de 0 à 45
$limite1 = 0; // première limite commence à 0
$limite2 = $division; // on suppose que c'est 44
if ($division%2) { // si impaire
$limite2++; // on ajoute +1 qu'on a enlevé plus haut
}
// cette partie fera une limite de 46 à 90
$limite3 = $division + 1; // donc 46
$limite4 = $division * 2; // donc 90



?>
<table width="100%" align="center">
<tr>
<td width="418" valign="top"> <!-- Première colonne -->
<?php

$requete1 = mysql_query("SELECT * FROM voiture LIMIT ".$limite1.", ".$limite2."") or die(mysql_error());
// on affiche les entrées de 0 à 30

while ($resultat1 = mysql_fetch_array($requete1)) { // boucle d'affichage
?>
<div id="conttousvehicule1">
<!-- Debut du <div id="conttousvehicule1" /> -->
<div class="bloctousvehicule1">
<!-- Debut du <div class="bloctousvehicule1" /> -->
<a href="voitaff2.php?voiture=<?php echo $resultat1['idd']; ?>"> <img src="/admin/<?php echo $resultat1['photos']; ?>" alt="d" width="152" height="114" border="0" align="top"/></a> </div>
<!-- Fin du <div class="bloctousvehicule1" /> -->
<div id="contdroitetousvehicule">
<!-- Debut du <div id="contdroitetousvehicule" /> -->
<div class="bloctousvehicule2">
<!-- Debut du <div class="bloctousvehicule2" /> -->
<a href="voitaff2.php?voiture=<?php echo $resultat1['idd']; ?>"><span class="titrevoiture"> <?php echo $resultat1['titr']; ?><br />
</span></a> </div>
<!-- Fin du <div class="bloctousvehicule2" /> -->
<div class="bloctousvehicule3"><span class="prix">Prix : <?php echo $resultat1['prix1']; ?> €</span> </div>
<div class="bloctousvehicule4">Année : <?php echo $resultat1['anne']; ?></div>
<div class="bloctousvehicule5">Kilométrage : <?php echo $resultat1['kilometre']; ?> Km</div>
</div>
<!-- Fin du <div id="contdroitetousvehicule" /> -->
</div>
<a href="voitaff2.php?voiture=<?php echo $resultat1['idd']; ?>"></a>
<?php }
?></td>
<td width="418" valign="top"><!-- Deuxième colonne -->
<?php
$requete2 = mysql_query("SELECT * FROM voiture LIMIT ".$limite3.", ".$limite4."") or die(mysql_error());; // on affiche les entrées de 31 à 60
while ($resultat2 = mysql_fetch_array($requete2)) { // boucle d'affichage
?>

<div id="conttousvehicule1">
<!-- Debut du <div id="conttousvehicule1" /> -->
<div class="bloctousvehicule1">
<!-- Debut du <div class="bloctousvehicule1" /> -->
<a href="voitaff2.php?voiture=<?php echo $resultat2['idd']; ?>"> <img src="/admin/<?php echo $resultat2['photos']; ?>" alt="d" width="152" height="114" border="0" align="top"/></a> </div>
<!-- Fin du <div class="bloctousvehicule1" /> -->
<div id="contdroitetousvehicule">
<!-- Debut du <div id="contdroitetousvehicule" /> -->
<div class="bloctousvehicule2">
<!-- Debut du <div class="bloctousvehicule2" /> -->
<a href="voitaff2.php?voiture=<?php echo $resultat2['idd']; ?>"><span class="titrevoiture"> <?php echo $resultat2['titr']; ?><br />
</span></a> </div>
<!-- Fin du <div class="bloctousvehicule2" /> -->
<div class="bloctousvehicule3"><span class="prix">Prix : <?php echo $resultat2['prix1']; ?> €</span> </div>
<div class="bloctousvehicule4">Année : <?php echo $resultat2['anne']; ?></div>
<div class="bloctousvehicule5">Kilométrage : <?php echo $resultat2['kilometre']; ?> Km</div>
</div>
<!-- Fin du <div id="contdroitetousvehicule" /> -->
</div>

<?php }
mysql_close(); // Déconnexion de MySQL
?></td>
</tr>
</table>
<p>
<p>

<br /></p>
</div>
<div class="cleaner"></div>
</div> <!-- fin de a column -->
<!-- fin de a column -->
<div class="margin_bottom_20 h_divider"></div>
<div class="margin_bottom_20"></div>

<div class="column_w920">

</td></table> </div>
<div class="moduletable">
<div class="clr"></div>

<div class="column_w190 fl margin_right_40">
<a href="#"><img src="images/SOS1.jpg" alt="image" width="180" height="40" border="0" /></a>
<p>Dépannage 24/24h</p>
<p> <a href="#"></a></p>
</div>

<div class="column_w190 fl margin_right_40">
<a href="accidente.php"><img src="images/depannage/7.jpg" alt="image" width="204" height="153" border="0" /></a>
<p>Entretien vehicule <a href="#"></a></p>
</div>

<div class="column_w190 fl margin_right_40">
<a href="#"><img src="11" alt="image" width="180" height="100" /></a>
<p>Voiture accidenté</p>
</div>

<div class="column_w190 fl">
<a href="#"></a>
<p>blablallala<a href="#"></a></p>
</div>

<div class="margin_bottom_15"></div>
</div>

<div class="cleaner"></div>
</div> <!-- fin de wrapper 02 -->
</div> <!-- fin de wrapper 01 -->

<div id="templatemo_footer">

<ul class="footer_list">
<li><a href="#" class="current">Acceuil</a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li class="last"><a href="#"></a></li>
<p> </p>
</ul>

<div class="margin_bottom_10"></div>

Copyright © 2008 <a href=""></a>

<div class="margin_bottom_10"></div>

</div>
<!-- fin de footer -->
</div> <!-- fin de container -->

</body>
</html>
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
8 sept. 2009 à 18:29
Bonjour,

Je vois que vous avez tenté de modifier pour que le résultat en trop s'affiche dans la première colonne.
Essayez voir de remplacer ceci:

// cette partie fera une limite de 46 à 90 
$limite3 = $division + 1; // donc 46 
$limite4 = $division * 2; // donc 90 


par

 // cette partie fera une limite de 46 à 90 
$limite3 = $division + 2; // donc 46 
$limite4 = $division * 2; // donc 90 


Je fais + 2 car plus haut, on a ajouté 1 à la deuxième limite. En théorie, ils commencent donc au même nombre, ce n'est pas l'idée. Par ex:

Si première requête affiche -> 0 à 40
La deuxième aurait affiché -> 40 à 90
un + 2 permet de faire 41 à 90.

Tenez-moi au courant.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 18:40
Merci de votre aide

Mais ca ne m affiche que 4 resultat sur 6

// cette partie fera une limite de 46 à 90
$limite3 = $division + 2; // donc 46
$limite4 = $division * 2; // donc 90 => ici on obtient 88 et non 90 faut rajouter +2 non?

oui j ai essaier d afficher sur la 1ere colonne mais je sais pas si c est juste?
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
8 sept. 2009 à 18:48
Bonsoir,

Combien d'entrées avez-vous dans la table ?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 18:51
pour l instant 6 mais ce chiffre va augmenter
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
8 sept. 2009 à 18:52
Pourriez-vous entrer une entrée bidon pour voir comment il réagit à un chiffre pair ?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 18:58
voila c est fait il reagi mal
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
8 sept. 2009 à 18:59
A savoir ? Erreurs ? Messages ?
0
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
8 sept. 2009 à 18:59
A savoir ? Erreurs ? Messages ?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 19:00
faut faire avec un if inf a 10 et supp a 10 non?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
8 sept. 2009 à 19:07
ce message

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2.5' at line 1

tu as eu mon mess privee tu a l adresse
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
10 sept. 2009 à 17:56
Personne?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
19 sept. 2009 à 10:38
personne?
0