par
pierre » 06 mars 2008, 18:51
Bonjour,
Je bloque sur l'écriture d'une requête qui devrait permettre d'afficher des articles avec en premier ceux dont la date est supérieure à aujourd'hui, ensuite les autres
SGBD MySQL - 5.0.20a-standard pour la base
ma table
Code : Tout sélectionner
CREATE TABLE `tbl_newsletter` (
`incr_id` int(11) unsigned NOT NULL auto_increment,
`txt` varchar(255) default NULL,
`date` date NOT NULL,
`delete` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`incr_id`)
);
mon code
Code : Tout sélectionner
$req_agenda=mysql_query("select * from tbl_agenda where article!=\"\" and delete!=\"1\" order by date asc",$db_link);
if(mysql_num_rows($req_agenda)!="0")
{
$nbre_articles=mysql_num_rows($req_agenda);
$affichage = "10";
$nbre_page = ceil($nbre_articles/$affichage);
$total_num_page = array();
for($i=1; $i<=$nbre_page; $i++) { $np= $np+1; array_push($total_num_page,$np); }
if(isset($_GET['goto_page']) && ($_GET['goto_page']!="0" || $_GET['goto_page']!="")) { $limite_mysql = $affichage * $_GET['goto_page']; } else { $limite_mysql = "0"; }
$req_agenda=mysql_query("select * from tbl_agenda where article!=\"\" and delete!=\"1\" order by date asc limit $limite_mysql , $affichage",$db_link);
if (mysql_num_rows($req_agenda)>"0")
{
while ($result_req_agenda = mysql_fetch_array($req_agenda))
{
$ecrire_article.=$result_req_agenda['article']."<br />";
}
}
if ($nbre_articles>$affichage)
{
// là la gestion des différentes pages
}
}
Je bloque sur le moyen d'écrire la requête pour que les articles soient ordonnés d'abord par ceux dont la date est supérieure ou égale à aujourd'hui et ensuite les autres
exemple de données
1 Albert 2008-03-10
2 Durand 2008-02-24
3 Dupont 2008-04-16
4 Marcel 2008-01-12
5 Martin 2008-04-08
6 Petit 2008-03-01
7 Jambon 2008-10-12
et ce que la requête devrait retourner supposant que nous soyons le 6 Mars 2008
1 Albert 2008-03-10
5 Martin 2008-04-08
3 Dupont 2008-04-16
7 Jambon 2008-10-12
6 Petit 2008-03-01
2 Durand 2008-02-24
4 Marcel 2008-01-12
Merci d'avance de votre aide
Bonjour,
Je bloque sur l'écriture d'une requête qui devrait permettre d'afficher des articles avec en premier ceux dont la date est supérieure à aujourd'hui, ensuite les autres
SGBD MySQL - 5.0.20a-standard pour la base
ma table
[code]CREATE TABLE `tbl_newsletter` (
`incr_id` int(11) unsigned NOT NULL auto_increment,
`txt` varchar(255) default NULL,
`date` date NOT NULL,
`delete` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`incr_id`)
);[/code]
mon code
[code]$req_agenda=mysql_query("select * from tbl_agenda where article!=\"\" and delete!=\"1\" order by date asc",$db_link);
if(mysql_num_rows($req_agenda)!="0")
{
$nbre_articles=mysql_num_rows($req_agenda);
$affichage = "10";
$nbre_page = ceil($nbre_articles/$affichage);
$total_num_page = array();
for($i=1; $i<=$nbre_page; $i++) { $np= $np+1; array_push($total_num_page,$np); }
if(isset($_GET['goto_page']) && ($_GET['goto_page']!="0" || $_GET['goto_page']!="")) { $limite_mysql = $affichage * $_GET['goto_page']; } else { $limite_mysql = "0"; }
$req_agenda=mysql_query("select * from tbl_agenda where article!=\"\" and delete!=\"1\" order by date asc limit $limite_mysql , $affichage",$db_link);
if (mysql_num_rows($req_agenda)>"0")
{
while ($result_req_agenda = mysql_fetch_array($req_agenda))
{
$ecrire_article.=$result_req_agenda['article']."<br />";
}
}
if ($nbre_articles>$affichage)
{
// là la gestion des différentes pages
}
}[/code]
Je bloque sur le moyen d'écrire la requête pour que les articles soient ordonnés d'abord par ceux dont la date est supérieure ou égale à aujourd'hui et ensuite les autres
exemple de données
[quote]1 Albert 2008-03-10
2 Durand 2008-02-24
3 Dupont 2008-04-16
4 Marcel 2008-01-12
5 Martin 2008-04-08
6 Petit 2008-03-01
7 Jambon 2008-10-12[/quote]
et ce que la requête devrait retourner supposant que nous soyons le 6 Mars 2008
[quote]1 Albert 2008-03-10
5 Martin 2008-04-08
3 Dupont 2008-04-16
7 Jambon 2008-10-12
6 Petit 2008-03-01
2 Durand 2008-02-24
4 Marcel 2008-01-12[/quote]
Merci d'avance de votre aide