IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Tri par prix et categorie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Par défaut [Tableaux] Tri par prix et categorie
    Bonjour, j'ai un petit probléme de tri par prix , quand je réalise le tri cela prends en compte toutes mais catégorie et j'aimerais que cela prenne que la catégoris choisie. voici mon script ici dessous.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    require_once('conf.php');
    require_once('design/header.php');
    require_once('css.php');
    require_once('reglage.php');
     
    echo'<table width="98%" align="center" cellspacing="0" cellpadding="2" border="0" bgcolor="#939BC1">
          <tr>
          <td  width="18%" ><center><font class="titre2" color="#FFFFFF"><b>N°annonce<br />Photo</b></font></td>
          <td  width="70%" ><center><font class="titre2" color="#FFFFFF"><b>Description</b></font></td>
    	  <td  width="12%" ><center><font class="titre2" color="#FFFFFF"><b>Prix</b><a href="?classe=prixasc"><img src="design/desc.gif" border="0" alt="Du plus petit au plus grand"></a><a href="?classe=prixdesc"><img src="design/asc.gif" border="0" alt="Du plus grand au plus petit"></a></font></td>
          </tr>';
    @$page=$_GET['page'];
    @$classe=$_GET['classe'];
    	$select=mysql_query("SELECT * FROM annonce where id_cat='$id_cat'") or die (mysql_error());
    	if(@$debut==""){$debut=0;}  
    	if(@$page==""){$page=0;}  
    	 $debut=$page*$nb_anno_page;
    	 $nb_total=mysql_num_rows($select);
    $nb_page = mysql_query("select id_ano,speudo,detail_ano,image_mini,prix from annonce where id_cat='$id_cat' LIMIT $debut,$nb_anno_page ");
    	if($classe=="prixasc")
    	 	{
    		$nb_page=mysql_query("SELECT * FROM annonce ORDER BY prix ASC LIMIT $debut,$nb_anno_page ") or die (mysql_error());
    		}
    	if($classe=="prixdesc")
    	 	{
    		$nb_page=mysql_query("SELECT * FROM annonce ORDER BY prix DESC LIMIT $debut,$nb_anno_page ") or die (mysql_error());
    		}
    while($ligne = mysql_fetch_array($nb_page ))
    {
    $id = $ligne['id_ano'];
    $nom = $ligne['speudo'];
    $description = $ligne['detail_ano'];
    $prix = $ligne['prix'];
    $id_d = sprintf("%08s",$id);
     
    if($bgcolor=='#E4E4E4'){ $bgcolor='#D2D2FF'; }else{ $bgcolor='#E4E4E4'; }
     
    echo("<td bgcolor='$bgcolor' class=\"titre2\" align=\"center\" width=\"18%\"><a href='details.php?detail&id=$id'><b>N°$id_d</b><br />");
          if ($ligne[image_mini]!=""){echo"<center><img src=\"design/photo.gif\" border=\"0\" alt=\"voir l'annonce et c'est photo\"></center>";}else{echo"<center><b>NO</b></center></a>";} 
    echo("<td bgcolor='$bgcolor' class=\"titre2\" align=\"center\" width=\"70%\"> 
       <br /><a href='details.php?detail&id=$id'>$description</a></td>
       <td bgcolor='$bgcolor' class=\"titre2\" align=\"center\" width=\"12%\"><a href='details.php?detail&id=$id'><b>$prix €</b></a></td>
    </tr>");
    }
    echo'</table><br /><div align="center">';
    if ($page>0) 
    	{
    	$precedent=$page-1;
    	echo "<a href='list_ann.php?id_cat=$id_cat&page=$precedent'><< Précédent</a> ";
    	}
    	$i=0;
    	$j=1;
    if($nb_total>$nb_anno_page) 
    	{
    	while($i<($nb_total/$nb_anno_page))
    		{
    		if($i!=$page)
    		{
    		echo" <a href='list_ann.php?id_cat=$id_cat&page=$i'>$j</a> ";
    		}
    		else
    		{
    		echo" <b>$j</b>";
    		}
    	$i++;$j++;
    	}
    	}
    if($debut+$nb_anno_page<$nb_total) 
    	{
    	$suivant=$page+1;
    	echo " <a href='list_ann.php?id_cat=$id_cat&page=$suivant'>Suivant >></a></div>";
    	}
    ?>
    Merci des renseignements données ou de la solution donnée .

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    bonjour,

    tu fait le tri sur tt les prix de la table annonce, tu prend pas en compte la catégorie, il faudrait que tu fasse une jointure, avec ta table catagorie et annonce, ou par l'intermédiaire d'une autre table, pr sélectionner que les prix de la catégorie voulu. (que tu peux par exemple récupérer d el'url)

    mais la je regrette ton code est presque illisible, pas bien indenté, et le code html mélangé au php comme ca, n'améliore pas la lisibilité.

    mais bon si je comrpend bien, une catégorie contient plusieur annonce donc il y a certainement possibilité de faire une jointure.

    1) le mec sélectionne uen catégorie via un formulaire (liste de sélection)
    2) tu affiches les annonces de cette catégorie (c'est a ce moment la que dans ton lien <a href="?classe=prixdesc"> ou <a href="?classe=prixasc"> tu rajoute l'id de la catégorie comme ceci <a href="?classe=prixdesc&id_cat=$idcat">. c'est un exemple
    3) est la a partir de ca tu construit ta jointure, et ainsi tu pourras récupérer les prix par ordre croissant ou décroissant d'une annonce.

    si jamais décrit nous tes table ainsi que leur clés rpimaires et étrangère.

Discussions similaires

  1. [Tableaux] Tri par insertion, tri rapide ?
    Par Wenneguen dans le forum Caml
    Réponses: 1
    Dernier message: 27/08/2012, 22h34
  2. Réponses: 4
    Dernier message: 20/01/2012, 12h24
  3. [Tableaux] Tri de tableaux par date
    Par maxromeo dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2009, 00h59
  4. [MySQL] Tri par prix
    Par djinko dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/03/2007, 09h39
  5. [Tableaux] Tri par colonnes
    Par sfc2000 dans le forum Langage
    Réponses: 15
    Dernier message: 20/05/2006, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo