Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Query particolare

  1. #1

    Query particolare

    Buongiorno.
    Ho un dbase mysql con 3 campi:
    id, nome, numero:

    nome

    Paolo
    Francesco
    Marco
    Giovanni

    Rispettivamente nel campo numero ho assegnato i valori corrispondenti

    numero
    1
    2
    3
    4
    Il mio quesito è questo, come eseguo una query dove l'ultimo campo numero diventi il primo.
    Grazie mille
    codice:
    mysql_select_db($database_d, $d);
    $query_Recordset1 = "SELECT * FROM d ORDER BY numero ASC" ";
    $Recordset1 = mysql_query($query_Recordset1, $d) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    
    <?php do { ?>
      <?php echo $row_Recordset1['nome']; ?>
    
     <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    particolarissssima..
    forse con
    SELECT * FROM d ORDER BY numero DESC..

  3. #3
    Intanto grazie della risposta.
    Forze mi sono spiegato male..
    L'ordine deve essere in asc in base al campo numero che in partenza è
    1
    2
    3
    4

    Io voglio che il record con il campo numero che contiene 4 si assegni il valore 1, il campo numero con valore 1 devente 2 e via scorrendo.
    Grazie.

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    stavo diventando matto a capire..
    poi ho ritrovato un post simile..
    ecco la query

    SELECT * FROM d ORDER BY if(numero= 4,0,1), numero ASC

    però in questo caso funziona SOLO con il 4.. per renderlo ulteriormente dinamico non saprei aiutarti, se non facendo un'altra query contando quanti record ci sono eccetera..

  5. #5
    Io voglio che il record con il campo numero che contiene 4 si assegni il valore 1, il campo numero con valore 1 deventi 2 e via scorrendo.
    Ma il tutto deve essere aggiornato nel dbase.
    Grazie a tutti.

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    non capisco proprio dove vuoi arrivare..
    la prima volta che uno accede alla pagina avrai (visto che ordini per numero ASC)
    numero 1 Paolo
    numero 2 Francesco
    numero 3 Marco
    numero 4 Giovanni

    il DB fa l'update
    la seconda volta che un utente entra nella pagina avrai
    numero 1 Giovanni
    numero 2 Paolo
    numero 3 Francesco
    numero 4 Marco

    il DB fa l'update
    la terza volta che un utente entra nella pagina avrai
    numero 1 Marco
    numero 2 Giovanni
    numero 3 Paolo
    numero 4 Francesco

    e così via.
    è questo che vuoi ottenere? ogni volta una lista differente?
    e se aggiungi nomi? la pagina deve fare l'update di tutti in ogni caso?
    a che scopo?

  7. #7
    Si è proprio quello che voglio ottenere!
    Grazie.

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    se vuoi ogni volta una lista differente usa
    SELECT * FROM d ORDER BY RAND()

    senza "stressare" il DB ogni volta con gli aggiornamenti

  9. #9
    Provo a proporre una soluzione visto che il db dev'essere aggiornato:

    1) update per incrementare tutti i record di uno (SET numero = numero + 1)
    2) update per riportare a 1 il numero del record che ha il MAX(numero)
    3) select order by numero

    Non ho scritto le istruzioni sql complete perché lavoro in un dialetto sql diverso da quello di mysql però la logica che propongo dovrebbe essere chiara.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  10. #10
    Ci sono riuscito!

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.