Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209

    Funziona order in una query con DISTINCT???

    Funziona order in una query con DISTINCT perchè a me non mi ordina i risultati.

    $sqlmisuragomme = "select DISTINCT (misura) from gomme where idmarca='$idmarca' and tipocat='0' and pub='si' ORDER BY misura DESC;

    il risultato che mi esce da questa query è
    7
    30
    19
    12

    mentre dobrebbe essere

    7
    12
    19
    30

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Evidentemente il campo non è di tipo numerico e l'ordinamento avviene sulle stringhe. Devi cambiare il tipo di campo o forzarne il tipo.

    Prova così

    select DISTINCT(cast(misura as unsigned)) as tipo from gomme where idmarca='$idmarca' and tipocat='0' and pub='si' ORDER BY tipo DESC

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    meglio di prima ma mi stampa sempre qualcosa fuori posto


    205/55/16
    155/65/13
    165/60/14
    165/65/14
    165/70/14
    175/65/14
    185/60/14
    185/65/14
    245/35/18
    155/65/14


    ecco tutto il codice


    <table width="100%" cellpadding="2" cellspacing="2">
    <link rel="stylesheet" type="text/css" href="css/menu_barrasx.css">
    <script type="text/javascript" src="menu.js"></script>
    <tr>
    <td valign="middle" height="20" background="img/barra_c.gif"><font color="#FF0000">Pneumatici</font>
    </td>
    </tr>
    <tr>
    <td>

    <div id="MJ_MainMenu">
    <?php
    //leggo le marche dalla tabella marca e la stampo
    $sqlmarcagomme = "select * from marca order by marca asc";
    $resmarcagomme = mysql_query($sqlmarcagomme) or die("Impossibile caricare la marca: ".mysql_error());
    $i=1;
    while ($rowmarcagomme= mysql_fetch_array($resmarcagomme))
    {
    //echo $rowmarcagomme[1];
    ?>
    )"><?php echo $rowmarcagomme[1]?>
    <div id="MJ_<?php echo $i ?>" class="MJ_HiddenLink">
    <?php
    $idmarcagomme=$rowmarcagomme[0];
    //leggo i dati dalla tabella gomme selezionando l'idmisuragomme
    $sqlmisuragomme = "select DISTINCT(cast(misura as unsigned)) as tipo from gomme where idmarca='$idmarcagomme' and tipocat='0' and pub='si' ORDER BY tipo asc";
    //"select DISTINCT (misura) from gomme where idmarca='$idmarcagomme' and tipocat='0' and pub='si'";
    $resmisuragomme = mysql_query($sqlmisuragomme) or die("Impossibile caricare gli misure: ".mysql_error());
    while ($rowmisuragomme= mysql_fetch_array($resmisuragomme))
    {
    ?>

    <?
    $idmisuragomme=$rowmisuragomme['tipo'];
    //selezione le misure che hanno l'idmisura che ho trovato nella query precedente
    $sqlmisuragomme1 = "SELECT * FROM misura where idmisura='$idmisuragomme' ORDER BY misura asc";
    //"select * from misura where idmisura='$idmisura' order by misura asc";
    $resmisuragomme1 = mysql_query($sqlmisuragomme1) or die("Impossibile caricare gli le misure: ".mysql_error());
    while ($rowmisuragomme1= mysql_fetch_array($resmisuragomme1))
    {
    ?>
    <a class="MJ_LinkClass" href="prodotti.php?idmarca=<?php echo $idmarcagomme;?>&misura=<?php echo $rowmisuragomme1['idmisura']; ?>">
    <?
    echo $rowmisuragomme1['misura'];
    ?>
    </a>
    <? } ?>

    <?php
    }// fine while misura gomme
    ?>
    </div>
    <?
    $i++;
    }
    ?>
    </div>
    </td>
    </tr>

    </table>

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Intanto comincia a usare il tag php per postare il codice.

    E poi che c'è che non va? Hai ordinato per tipo ma poi non lo mostri in output, cosa ti aspetti di vedere?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    tutto il codice visualizza un menu a discesa


    tipo

    bridgeston
    michelin
    ecc

    al clic su un link vede nel database gomme tutte le gomme inserite e ne stampa le misure delle gomme inserite senza duplicati

    il risultato è questo

    205/55/16
    155/65/13
    165/60/14
    165/65/14
    165/70/14
    175/65/14
    185/60/14
    185/65/14
    245/35/18
    155/65/14



    mentre dovrebbe essere

    155/65/14
    155/65/13
    165/60/14
    165/65/14
    165/70/14
    175/65/14
    185/60/14
    185/65/14
    245/35/18
    205/55/16


    e questo vale per tutti i link nessuno è ordinati perfettamante


    michelin per es,

    205/55/16
    155/65/13
    165/60/14
    245/35/18
    155/65/14

    e cosi via

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da luca200
    Hai ordinato per tipo

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    si ho ordinato per tipo per se nella query

    perchè ordinando cosi mi i risultati sono quasi ok


    Codice PHP:
    $sqlmisuragomme "select DISTINCT(cast(misura as unsigned)) as tipo from gomme where idmarca='$idmarcagomme' and tipocat='0' and pub='si' ORDER BY tipo asc"
    se ordinavo normalmente come query che sta sotto mi dava tutto sballato e non so perchè

    Codice PHP:
    $sqlmisuragomme "select DISTINCT(misura) from gomme where idmarca='$idmarcagomme' and tipocat='0' and pub='si' ORDER BY misura asc"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.