Affichage différents selon requête SQL

wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005 - 21 févr. 2005 à 23:42
wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005 - 22 févr. 2005 à 08:33
Bonjour à tous,

Et une galère de plus

J'ai une base de données plutôt simple avec les champs classiques (Nom, Prénom, Rue, ...., Premium).
J'aimerais lorsque je lance une requête s/un département par exemple que l'affichage des résultats de la requête commence par les données dont le champs "premium" = 1 avec un format tableau comme ci-dessous et que les autres données soit affichées en liste classique... tout en conservant mon affichage page par page.

Ci-joint mon codage actuel qui me donne les résultats avec un affichage sous forme de tableau spécifique mais je n'arrive pas à faire à ce que les données "premium"= 0 ne s'affichent pas de la même façon.

Merci d'avance pour toutes vos pistes car je commence à m'exciter grâve

Wynelle.

Ps : Désolé si ce n'est pas super bien codé, je n'ai aucun mérite car je m'inspire à gauche à droite ;-)

<?php
//partie de connexion a la bdd
$serveur = "localhost";
$login = "root";
$pass = "";
$connexion = mysql_connect( $serveur, $login, $pass );
mysql_select_db( "portail-bnb", $connexion );


$nb_results_p_page = 10; // nombre de résultats par page
$nb_avant = 3; // nombre de page avant la page courante
$nb_apres = 3; // nombre de page après la page courante
$premiere = 1; // aficher le lien "première page" (1 ou 0)
$derniere = 0; // afficher le lien "dernière page" (1 ou 0)
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql)


// comptage du nombre de lignes de la base
$result = mysql_query("SELECT count(ID) FROM bnb_inscrits WHERE CP>=29000 AND CP<30000 AND TYPE!='G');
if(!$result)
{
// redirection erreur
header("location: erreur.php");
exit;
}
$ret = mysql_fetch_array($result);
// nombre de lignes
$nb_results = $ret[0];


// exemple de requete
$result = mysql_query("SELECT ID,INTITULE,CP,VILLE,TEL,URL,DESCRIPTIF_LISTE,AFFILIATION,CLASSIFICATION,REPAS, PREMIUM FROM bnb_inscrits WHERE CP>=29000 AND CP<30000 AND TYPE!='G' ORDER BY `CP` ASC,`INTITULE` ASC LIMIT $start, $nb_results_p_page");


//=========================================
// si on a récupéré un resultat on l'affiche.
//=========================================
if($nb_results) {
// debut du tableau


echo ''."\n";

// lecture et affichage des résultats sur 2 colonnes

while($row = mysql_fetch_array($result)) {

echo '<table bordercolor="#FFFFFF" border="0" cellpadding="1" width="495">';
echo '----
';
echo ', [' . $_SERVER['SCRIPT_NAME'] . ' Première]&nbsp;&nbsp;';

// page précédente
if($courant > 1)
echo '[' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant - 1) . ' Précédente]&nbsp;&nbsp;';


// affichage des numéros de page
for($i = $courant - $avant; $i <= $courant + $apres; $i++)
{
// page courante
if($i == $courant)
echo '' . $i . '&nbsp;&nbsp;';
else
echo '[' . $_SERVER['SCRIPT_NAME'] . '?page=' . $i . ' ' . $i . ']&nbsp;&nbsp;';
}


// page suivante
if($courant < $nb_pages)
echo '[' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($courant + 1) . ' Suivante]&nbsp;&nbsp;';

if($derniere && $courant + $apres < $nb_pages)
echo '[' . $_SERVER['SCRIPT_NAME'] . '?page=' . $nb_pages . ' Dernière]&nbsp;&nbsp;';


?>

2 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 févr. 2005 à 01:00
Salut,



dans ta requête met : ORDER BY premium DESC à la fin



a ++

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005
22 févr. 2005 à 08:33
Salut Anthomicro,

Merci pour ta réponse mais cela ne ressout pas mon problème car même en filtrant par le champ "premium" à la fin, cela ne change par le mode d'afficchage pour ceux qui ne sont pas "premium"!

Pour faire simple, les listés "premium" s'affiche dans un cadre de couleur et les "non-premiums" s'affichant eux classiquement en liste.

Merci d'avance.

@+
0
Rejoignez-nous