Visualizzazione dei risultati da 1 a 4 su 4

Discussione: ordine numerico record

  1. #1

    ordine numerico record


    A seguito di una richiesta devo poter dare 1 ordinamento numerico (a discrezione) di N record

    le mascherine per ogni record sono già fatte...inserisco un numerino e premo imposta...nulla di + semplice...allora il problema quale è?....
    Il problema è che se io ho (es.) 6 record avrò una situazione di questo genere:
    1
    2
    3
    4
    5
    6
    -------------------------------------
    se poi faccio la modifica e imposto che in numero 3 diventa il numero 4 mi ritrovo la seguente situazione
    -------------------------------------
    1
    2
    4
    4
    5
    6
    -------------------------------------
    una coppia di 4

    sto cercando il modo per "modificare per cui tutta la lista in base ad 1 inserimento

    attualmente sono a questo punto

    codice:
    $newnum = $_POST['posizione'];
    $sql = mysql_query("SELECT * FROM tab WHERE posizione < $newnum");
    while($row = mysql_fetch_array($sql)){
    	$sotto = $sotto.'
    '.$row['posizione'];
    }
    
    
    $sql = mysql_query("SELECT * FROM tab WHERE posizione > $newnum);
    while($row = mysql_fetch_array($sql)){
    	$sopra = $sopra.'
    '.$row['posizione'];
    }
    
    echo '
    Numeri sotto:
    '.$sotto;
    
    echo '
    Numeri sopra:
    '.$sopra;
    così facendo mi estraggo i numeri che stanno sotto e i numeri che stanno sopra...mi manca poi il numero uguale e poi ricalcolare i numeri che stanno sopra e i numeri che stanno sotto ....etc... come logica ci sono ...ma per caso qualcuno di voi ha già affrontanto il problema in 1 modo + snello e logico di quel che sto facendo io?

  2. #2
    scusate l'intervento fuori luogo...

    la soluzione era + che semplice ovvero basta alternare sempre il numero successivo e impostarlo con il numero precedente passandosi l'id record per quel numero che si intende spostare, controllando se il numero è superiore o inferiore al numero impostato prima

    es:

    1,2,3,4,5

    se il 3 diventa 4 ...basta invertire il 4 con il 3 ...ovviamente
    se il 3 diventa il 2..basta invertire il 2 con il 3...ovviamente

    senza toccare gli altri..

    scusate...tanto rumore per nulla...

  3. #3
    uff... non va molto bene...o meglio fino a che alterno di 1 in - o 1 in + tutto ok....ma se il 3 lo faccio diventare 5 o 1 devo controllare i numeri in mezzo....uff...

    ma non c'è qualcosa di comodo per fare sti ordinamenti?

    cmq ora mi metto a cercare i numeri in mezzo e modificare anche quelli...anche se macchinoso dovrebbe andare

  4. #4
    Scusa ma non si capisce bene quello che ti serve.
    Il numerino per cui vuoi ordinare è l'ID della medesima colonna, suppongo.
    Ma se vuoi manterenere l'ordine di inserimento, evitando di stare a fare cicli di conteggio e rinominazione del numero, al fine di ottenere un numero di riga progressivo e senza interruzioni, puoi usare i CSS e le ordered list.
    Codice PHP:
    $sql mysql_query("SELECT * FROM tab WHERE posizione < $newnum");
    echo 
    "[list=1]";
    while(
    $row mysql_fetch_array($sql)){
    $var1 $row['col1'];
    $var2 $row['col2'];
    $var3 $row['col3'];
        echo 
    "[*]$var1 - $var2 - $var3";
    }
    echo 
    "[/list]"
    Poi da CSS definisci il tipo di numero della lista come meglio prefersci.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.