Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Logica per update sequenza numerica

    ciau

    Domanda a livello logico.... non ci arrivo...

    ho una tabella con un campo chiamato "ordinevisualizzazione" <---campo numerico per ordinare 1 elenco di voci a piacere...ora

    se io ho:
    1
    2
    3
    4
    5

    vorrei fare un update che dato un numero...esempio da 3 <-- lo faccio diventare 2 <-- ..vorrei fare un cambiamento logico di tutti i campi riuscendo sempre a mantenere una corretta numerazione...ora...quello che c'è da usare è la matematica e la logica...


    suggerimento per qualche libro logico-matematico?
    Tanto...lo fanno tutti... posso farlo anche io vero?

  2. #2
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Non si capisce esattamente cosa vuoi fare... devi incrementare dei valori numerici?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  3. #3
    Mi sto facendo uno schemino e questio è quello che ho trovato:

    Caso1
    Cambio il numero da 2 a 1
    1 -->2
    2 -->-- >1
    3 -->3
    4 -->4
    5 -->5

    caso2
    Cambio il numero da 3 a 4

    1 -->1
    2 -->2
    3 -->-- >4
    4 -->3
    5 -->5

    caso3
    Cambio il numero da 3 a 1
    1 -->2
    2 -->3
    3 -->-- >5
    4 -->3
    5 -->4

    dato questo schema mi viene da pensare...

    se il numero è inferiore solo di 1 di quello già presente, modificherò solo il numero precedente aggiungendo +1 (vedi caso 1).

    se il numero è inferiore + di 1 di quello già presente, modificherò tutti i numeri che stanno in mezzo ai due numeri (due numeri compresi)...vedi caso3 al contrario

    e così via...

    sto dando i numeri?


    Tanto...lo fanno tutti... posso farlo anche io vero?

  4. #4
    codice:
    1)prendi l'ordine dell'id che vuoi spostare
    
    2) scegli il verso (sopra/sotto) dove lo vuoi spostare
    
    caso 2a - lo sposti verso l'alto
    
           a) se l'ordine è = a 1 non fai nulla
           b) prendi l'id dell'elemento che ha ordine= (ordine_di_quello_che_vuoi_spostare-1)
           c) fai l'update dei due record modificando i due ordini
    
    caso 2b - lo sposti verso il basso
    
           a) se l'ordine è= all'ordine massimo non fai nulla
           b) prendi l'id dell'elemento che ha ordine=(ordine_etcetc + 1)
           c) fai l'udapte dei due record con i due nuovi ordini

    stesso ragionamento se invece vuoi spostare da una posizione X ad una posizione Y generica, solo che non avrai +1 o -1 ma saprai già qual'è l'ordine del secondo elemento da prendere (ovvero Y)

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    non ci ho capito na mazza Santino

    peta...forse lo hai già intuito, ma i campi 1 2 3 4 5 etc...non sono gli id dei record ma solo dei campi numerici...non prendo l'ID perchè potrei avere anche numerazioni "sballate" negli ID tipo
    19
    43
    523

    ...questo perchè il record può anche essere cancellato



    ....so bene che tu sei paziente e so bene che quello che hai scritto è giusto... <--- sono io che non lo capisco

    ho capito che se:

    1
    2
    3
    4
    5

    se sposto tipo da 2 scalo o aggiungo 1, di conseguenza quello + vicino scala o si aggiunge di 1..e fin quì andiam bene....(vero?)
    ma se da 2 lo faccio diventare 4 o da 4 lo faccio diventare 1 ...è quì c' qualcosa che tu hai detto e che io non ho capito :berto: VVoVe: VVoVe: VVoVe:
    Tanto...lo fanno tutti... posso farlo anche io vero?

  6. #6
    scusa vorresti dirmi che quei campi non hanno ID?????????????????????????????????????????? ??????????????????????????????????? ?????????????????????????????????????????????? se ti becca il mio prof dell'uni ti sderena


    mettici un ID a quei campi, anche contatore va bene....poi ci metti un altro campo che chiamerai ORDINE e usi quello che ti ho detto io

    ma il campo numerico che va da 1 a 5 è una CHIAVE PRIMARIA?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    No spetta spetta...i campi hanno 1 id...io l'id lo metto anche quando vado in bagno

    solo non ho capito quello che mi hai spegato...ecco :berto:
    il campo numerico non è una chiave primaria ..
    ogni record ha il suo ID...questo perchè sono Categorie di prodotti, ho aggiunto un campo ORDINE tipo numerico...che poi è quello che mi da l'ordine quando faccio "order by.."
    Tanto...lo fanno tutti... posso farlo anche io vero?

  8. #8
    i primi punti mi paiono chiari no? non ti ho scritto il codice preciso, ma è come se te l'avessi fatto...

    due minuti e ti scrivo la spiegazione dello spostamento da X a Y
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Originariamente inviato da Santino83_02
    i primi punti mi paiono chiari no? non ti ho scritto il codice preciso, ma è come se te l'avessi fatto...

    due minuti e ti scrivo la spiegazione dello spostamento da X a Y

    i primi 2 punti sono chiari si
    Tanto...lo fanno tutti... posso farlo anche io vero?

  10. #10
    allora,

    spiegazione generale:

    voglio spostare il record A dalla posizione X a quella Y... detto M la posizione massima fin'ora raggiunta, e m quella minima (=ad 1 nel tuo caso), può succedere:

    Y>M <---non va bene, Y può essere al più uguale ad M

    Y<m <--- non va bene, Y deve essere almeno uguale ad m

    m<= Y <= M <--- posso effettuare lo spostamento, QUINDI:

    1) prendo l'id del campo che ha ordine=Y

    2) faccio l'update del campo che voglio spostare (quello in posizione X) e rendo l'ordine=Y

    3) faccio l'update del campo con ID del punto 1 mettendo ordine=X


    esempio:

    voglio spostare il record con id=ABC dalla posizione 5 a quella 3... M=5,m=1...posso quindi spostarlo

    1) prendo l'id del record in posizione 3 (id=DEF)

    2) "update tabella set ordine=" & 3 & " where id=" & "abc"

    3) "update tabella set ordine=" & 5 & " where id=" & "def"


    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.