Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [MySQL] Ordinamento e visualizzazione dati

    Ciao a tutti,
    avrei bisogno di creare una serie di link che mi permettano di visualizzare i dati recuperati da una tabella (DB mysql) e di ordinarli in maniera crescente o decrescente, a seconda dei casi.
    Esempio:
    - inizialmente recupero e visualizzo i dati in una tabella con le intestazioni HTML (es: Id, Marca, Tipo, Anno, etc..) e sotto inserisco i dati dinamicamente. (la query l'ho creata ma adesso non sto a casa e non posso postarla )
    - successivamente, vorrei poter creare dei link con gli stessi nome dell'intestazione della tabella e cliccandoci sopra ri-visualizzare i dati ordinandoli in modo crescente o decrescente in base al tipo (Id, Marca, ecc..).
    In pratica dovrebbe essere una funzione simile a quella che si può vedere nelle pagine di PhpMyAdmin quando si chiede di mostrare il contenuto di una tabella.
    E' possibile realizzare una cosa simile senza rischiare esaurimenti nervosi??
    Grazie in anticipo...

  2. #2
    non è così complicato devi fare in modo che le intestazioni delle tabelle siano dei link..
    Quando un utente clikka su uno dei link devi ricaricare la pagina e in base al link premuto (passerai logicamente un parametro) farai una query diversa modificando l'ORDER BY

  3. #3
    ...il problema è che non riesco ancora a muovermi liberamente nella costruzione delle query su mysql. Se poi si aggiunge il fatto che lo script in questione è strutturato in un'unica pagina, ho difficoltà nel gestire la funzionalità che desidero ottenere con l'ordinamento dati e la creazione dei link. Non è che magari, gentilmente, potresti farmi qualche esempio.

  4. #4
    Allora, come dicevo prima l'intero script è incluso in un unico file struttura con una serie di witch e la query che utilizzo inizialmente è questa:
    codice:
    $result = mysql_query("SELECT id,marca,tipo,anno,revisione FROM autoportanti ORDER BY id DESC LIMIT 0,5", $db);
    ...poi continua:
    codice:
    while($records = mysql_fetch_array($result)) {
    echo '<td>'.$records['id'].'</td>';
    echo '<td>'.$records['marca'].'</td>';
    echo '<td>'.$records['tipo'].'</td>';
    echo '<td>'.$records['anno'].'</td>';
    echo '<td>'.$records['revisione'].'</td>';
    }
    a questo punto ho ottenuto la visualizzazione dei campi che mi interessano.

    Ora, e quì è difficile!
    come faccio per generare delle nuove query che mi permettano di visualizzare gli stessi dati di prima ordinati in maniera crescente o decrescente in base al tipo (es: id,marca,tipo, etc..) attraverso dei link posti nell'intestazione della tabella?

    Il primo dubbio che ho riguarda la programmazione d'insieme: devo necessariamente riscrivere il ciclo while per ogni variante e tutte le volte?

    Il secondo dubbio riguarda i nomi delle variabili da associare alle query: posso utilizzare lo stesso nome di variabile assegnado valori diversi o rischierei di incorrere in qualche bug?

    Mi aiutate a capire, per favore??
    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    43
    Ok sono giunto da poco ed è bene iniziare a dare una mano poi oggi sono in debito

    Io farei in questo modo:

    Analiziamo la tua situazione, tu, da quello che ho capito hai una tabella html generata dinamicamente su dati recuperati da un db.

    Allora io prima di tutto mi metterei la query in una variabile tipo
    codice:
    $query="SELECT id,marca,tipo,anno,revisione FROM autoportanti";
    /*
    senza includere le condizioni di ordinamento, poi in base ad un valore passato nella query string per mezzo dei
    link di ordinamento
    farei un controllo del tipo
    */
    
    switch($_GET['order']){
         case 1:
            $query.=" ORDER BY marca";
            break;
         case 2:
            $query.=" ORDER BY tipo";
            break;
         case 3:
            $query.=" ORDER BY anno";
            break;
         default:
            $query.=" ORDER BY id";
    }
    
    $query.=" LIMIT 0,5";
    
    // e da qui attacchi con il tuo codice per la stampa della query in
    // tabella.
    chiaramente secondo la stessa logica puoi costruirti la query come meglio credi ciaoo

  6. #6
    ...ma chi sei?? è semplicemente geniale!
    l'ho appena provato è funziona a meraviglia...

    ...mi aiuti a risolvere anche il secondo dubbio: (relativamente ai nomi delle variabili da associare alle query: posso utilizzare lo stesso nome di variabile assegnado valori diversi o rischierei di incorrere in qualche bug?)

    non so come ringraziarti, so' commosso!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    43
    Problemi non dovresti averli tranne un pochino di confusione nel codice (e quindi possibili bug causati dal disordine del codice) ma chiaramente dipende da quello che devi fare

  8. #8
    ...ma allora, in definitiva, posso utilizzare lo stesso nome di variabile assegnado valori diversi.
    Ad esempio, se utilizzo questa query col nome $result
    codice:
    $result = mysql_query("SELECT descrizione FROM autoportanti WHERE id='$id'", $db);
    posso riutilizzare lo stesso nome ($result) per creare un'altra query?
    E' giusto così?

  9. #9
    UP

    ...mi spiace, ma non credo di aver capito!?

    Qualcuno può darmi una mano??

  10. #10
    Ho risolto!
    ...scusami Falc-X non avevo letto bene la tua risposta.
    il problema era nel ciclo while, dove utilizzavo per scopi diversi una variabile con lo stesso nome...
    cmq, grazie!

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.