Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206

    invertire gli ordini di due righe.

    Salve a tutti..
    mi servirebbe un aiuto, c'è una funzione per mysql in php che inverte l'ordine delle righe?
    mi spiego meglio con un esempio.

    supponiamo che io ho un database in questo modo


    id | nome | ordine

    1 | pippo | 3
    2 | pluto | 10
    3 | paperino | 15



    supponiamo che io adesso voglia invertire pluto e paperino con i rispettivi valore 10 e 15 come posso fare?

    Grazie mille per la risposta..

  2. #2
    domanda assolutamente non chiara.

    Vuoi invertire l'associazione nome - ordine? allora servono alcuni update.

    vuoi modificare l'ordine di visualizzazione? allora usa order by.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    si voglio invertire l'ordine con degli update...

  4. #4
    Originariamente inviato da felixaf21
    si voglio invertire l'ordine con degli update...
    la cosa non ha senso pratico. I record memorizzati sono identificati dall'id, si possono ordinare in vari modi ma, all'interno della tabella (su disco per intenderci meglio) son per definizione random, cioe' vengono posizionati nel primo spazio del file trovato libero oppure accodati.

    Invertire l'ordine si fa con order by. Ma ancora non si capisce se tu vuoi che da:

    id | nome | ordine

    1 | pippo | 3
    2 | pluto | 10
    3 | paperino | 15

    diventino:

    id | nome | ordine

    1 | pippo | 3
    2 | pluto | 15
    3 | paperino | 10

    oppure:

    id | nome | ordine

    1 | pippo | 3
    2 | paperino | 15
    3 | pluto | 10

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    ok hai ragione ti spiego meglio...
    allora sto realizzando una menu ad albero per creare "infinite sezioni.."
    la tabella nel database è composta in questo modo:

    id_sezione -> (chiave primaria auto incrementante)
    nome_sezione -> (varchars)
    ordine -> (int)
    id_parent -> (int)
    pubblicato -> (int)
    ecc...


    il campo id_sezione è una chiave primaria auto incrementante;
    il campo nome_sezione è il campo della sezione,
    il campo ordine lo spiego sotto.
    id_parent è un campo dove vado ad associare la chiave primaria (id_sezione) al campo id_parent per creare il menu.
    pubblicato è un campo per rendere visibile la sezione.

    il campo ordine mi serve per spostare su e giù le sezioni quando vado a creare il menu.

    Esempio:
    supponiamo di avere nel nel database i seguenti dati:

    id_sezione | nome_sezione | ordine | id_parent | pubblicato

    1 | sezione uno | 1 | 0 | 1
    2 | sezione due | 2 | 0 | 1
    3 | sezione tre | 3 | 1 | 1
    4 | sezione tre | 4 | 3 | 1
    5 | sezione 4 | 5 | 0 | 1


    con una funzione ricorsiva mi vado a creare il menu ad albero dove ogni id_parent e associato all' id_sezione.

    supponiamo che io adesso voglia estrarre solo le sezioni con id_parent=0 quindi i menù principale.

    la query segue in questo modo:
    SELECT * FROM nome_tabella WHERE id_parent=0 ORDER BY ordine DESC.

    il menu viene composto in questo modo:

    - sezione 4 -> di cui il valore del campo ordine è 5
    - sezione due -> di cui il valore del campo ordine è 2
    - sezione uno -> di cui il valore del campo ordine è 1

    supponiamo che adesso voglia invertire quindi portare sopra la sezione due sotto la sezione 4, facendo una query che "altera" i valore nel campo ordine in modo permanente, in modo tale che il menu esca cosi:

    - sezione due -> di cui il valore del campo ordine è 5 ordine cambiato rispetto a sopra
    - sezione 4 -> di cui il valore del campo ordine è 2 ordine cambiato rispetto a sopra
    - sezione uno -> di cui il valore del campo ordine è 1



    spero di essere stato chiaro...

  6. #6
    fai una form che andrai a popolare con i record che ti interessano dando la possibilita' di modificare l'ordine corrente.

    Modifichi il valore nell'ordine che ti pare opportuno e poi, passata la form, esegui tante query update quanti sono i record da modificare basandoti ovviamente sugli id.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    praticamente io ho due pulsanti per ogni record che dovrebbero avere la funzione di invertire l'ordine su o giu.
    allego una img per renderti conto...

  8. #8
    pare un ordinamento nell'adminstrator di joomla.

    Se hai una cosa del genere gia' pronta sposta i record nell'ordine voluto. non vedo il problema. Quello che ti ho detto prima viene fatto dal form dell'immagine che hai postato.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    si ho visto un pò di CMS tipo wordpress-joomla-drupa..
    ho ho cercato di capire la loro logica, adesso me ne sto facendo uno mio strutturandolo nei migliori dei modi....
    cmq adesso provo e se ho problemi posto..

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    eccomi di nuovo...
    allora facendo tramite l'input del form non ho problemi....
    Il fatto è quando clicco sui due pulsanti sposta su e sposta giù, non sapendo che valori hanno le righe sopra e sotto come faccio a ordinare tramite query?

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.