Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209

    ordinare i risultati di una query

    Ho un problema che non riesco a risolvere ho fatto due query ma nella seconda non funziona order by

    praticamente ho inserito i valori anno 2010, anno 2009, anno 2008, anno 2007 ecc

    ma non riesco ad ordinare i risultati. Si ordina in questo modo

    Anno 2008
    Anno 2010
    Anno 2007
    Anno 2009
    Anno 2006

    Codice PHP:

    <table align="center" width="100%">
    <?php 
    $sqlmenu 
    "select * from menu order by ordine asc";
    $resmenu mysql_query($sqlmenu) or die("Impossibile caricare i menu: ".mysql_error());
    ?>
    <?php 
        
    while ($rowmenu mysql_fetch_array($resmenu))
                {
        
    ?> 
    <tr>
           <td height="20" align="center" valign="middle">
        <div id="tabella_arrotondata"><?php echo $rowmenu[1];  ?></div>
        <?php 
        $idmenu
    =$rowmenu[0];
        
    $sqllink "select * from link_menu where idmenu='$idmenu'";
        
    $reslink mysql_query($sqllink) or die("Impossibile caricare i link: ".mysql_error());
        
    ?>
        <?php 
        
    while ($rowlink mysql_fetch_array($reslink))
                {
        
    ?> 
        <div id="tabella_arrotondata1">[url="<?php echo $_SERVER['PHP_SELF']?>?pagina=index&amp;articolo=<?php echo $rowlink[0]; ?>"]<?php echo $rowlink[1]; ?>[/url]</div>
        
        <?php }?><div id="tabella_sotto"></div>
        </td>
    </tr>
    <?php }?>
    </table>

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    Non devi strutturarla in questo modo, che oltretutto è anche pesante in termini di prestazioni

    devi fare una "JOIN" tra le due tabelle.

    Posta la struttura delle due tabelle.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    Tab menu

    idmenu menu iduser ordine

    Tab link_menu

    idlink nome_link idmenu visite iduser

    devo postarti la struttura del tab o va bene solo i nome dei campi?

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    codice:
    SELECT * FROM menu JOIN link_menu ON menu.idmenu  = link_menu.idmenu ORDER BY menu.ordine ASC
    In ogni caso controlla che non ci siano caratteri (spazi) nei record del campo ordine

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    Ho poca dimestichezza con l'utilizzo di join

    adesso come faccio a stampare il nome menu(Tab. menu nome campo "menu") e idlink e nome_link(da Tab link_menu)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    nella tabella menu ho due campi

    xxxx,aaaa

    nella tabella link ho 5 campi due associati a xxxx e 3 associati a aaaa

    il risultato della query vorrei che fosse una cosa del genere


    xxxx
    ->1111
    ->2222
    ->3333
    aaaa
    ->4444
    ->5555

    come posso fare???

    questa è la query

    Codice PHP:

    <table align="center" width="100%">
    <?php 
    $sqlmenu
    ="SELECT * FROM menu JOIN link_menu ON menu.idmenu  = link_menu.idmenu ORDER BY link_menu.nome_link ASC";
    $resmenu mysql_query($sqlmenu) or die("Impossibile caricare i menu: ".mysql_error());

    while (
    $rowmenu mysql_fetch_array($resmenu))
                {
                
    ?> 
               
                <tr>
                    <td><?php echo $rowmenu['menu']." ".$rowmenu['nome_link']; ?></td>
                </tr>
         <?php
    }
    ?>
    </table>

    se metto nome $rowmenu['nome_link']; mi stampa bene
    tutti i valori
    xxxx 1111
    xxxx 2222
    aaaa 3333
    aaaa 4444
    aaaa 5555

    ma non mi stampa
    xxxx
    ->1111
    ->2222
    ->3333
    aaaa
    ->4444
    ->5555

    cosa devo cambiare

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    chi mi riesce a spiegare come si fa???

    grazie

  9. #9
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    beh, devi utilizzare qualche istruzione in PHP, per ottenere il risultato voluto.

    Codice PHP:

    <table align="center" width="100%">
    <?php
    $sqlmenu
    ="SELECT * FROM menu JOIN link_menu ON menu.idmenu  = link_menu.idmenu ORDER BY link_menu.nome_link ASC";
    $resmenu mysql_query($sqlmenu) or die("Impossibile caricare i menu: ".mysql_error());

    while (
    $rowmenu mysql_fetch_array($resmenu))
                {
                            if (
    $rowmenu['menu'] != $temp)
                                        
    $row $temp $rowmenu['menu'];
                            else
                                        
    $row '-->';
                                                     
                
    ?>
               
                <tr>
                    <td><?php echo $rowmenu['menu']." ".$rowmenu['nome_link']; ?></td>
                </tr>
         <?php
    }
    ?>
    </table>

    così dovrebbe andare, è buona norma far lavorare PHP rispetto a MySQL.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    Il risultato della query è questo

    aaaa a
    aaaa aaaa
    asas Anno 2006
    asas Anno 2007
    asas Anno 2008


    io vorrei che il risultato fosse

    aaaa(menu)
    a(link)
    aaaa(link)

    poi

    asas(menu)
    anno 2006(link)
    anno 2007(link)
    anno 2008(link)


    come devo fare???

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.