requête sql sur deux colonnes - PHP - Programmation
Marsh Posté le 12-12-2008 à 23:53:18
ça ne résout pas le pb, mais perso je remplacerais :
Code :
|
par :
Code :
|
afin d'être sûr que $page est bien un entier numérique positif ou nul.
Et en dessous j'ajouterais la clause :
Code :
|
Ensuite, toujours dans une optique d'optimisation, je trouve ça "crade" :
Code :
|
t'as vraiment besoin, pour compter les enregistrements, de rapatrier TOUS les champs ? sur une grosse table, ça peut se ressentir en performances.
j'opterais plutôt pour :
Code :
|
Maintenant il me semble, si j'ai bien compris le titre, que dans l'idée des 2 colonnes, c'est plutôt une question d'affichage, non ? Donc HTML, CSS. Pas PHP.
Marsh Posté le 13-12-2008 à 11:24:24
Si sa table est MyISAM, un select count(*) simple sur sa table sera ultra rapide vu que le nombre de tuples est stocké. Pas sûr que la même optim soit faite sur un select count(primary_key), même si y a des chances.
Marsh Posté le 12-12-2008 à 19:58:10
Bonjour!
Je souhaite afficher une requête sql sur deux colonnes...
J'ai tenté un code mais cela n'a pas marcher:
<?php
mysql_connect("localhost", "5119", "****" ); // Connexion à MySQL
mysql_select_db("base" );
// nombre de messages par page
$nombreDeMessagesParPage = 5;
// nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM matable');
$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages'];
// nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// boucle pour les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="mapage.php?page=' . $i . '">' . $i . '</a> ';
}
if (isset($_GET['page']))
{
$page = $_GET['page']; //numéro de la page indiqué dans l'adresse
}
else // première fois qu'on charge la page
{
$page = 1; // page 1 (par défaut)
}
// le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM matable ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
// boucle pour lister tout ce que contient la table :
$pair=0;
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['id']==$pair)
{
?>
PREMIER CONTENU
<?php
$pair+2;
}
else
{
?>
DEUXIEME CONTENU
<?php
}
}
mysql_close(); // Déconnexion de MySQL
?>
mon but est donc un affichage:
9 8
7 6
5 4
3 2
1
Tout ca avec des page bien sûr... Mais ça sa marche...
Je dois encore vous dire que dans contenu 1 jai un div class=1 et dans contenu 2 jai un div class=2 et que je m'arrange après avec le css... Si vous avez une meilleur idée (surement) donnez là moi s.v.p.!
Merci d'avence!