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

    dare un valore numerico per ordinare i record

    ciao a tutti... scusate il titolo un po' astratto ma non sono riuscito a sintetizzarlo meglio

    allora attualmente ho una tabella semplice nel mio database cosi strutturata:

    codice:
    +----+------------+------------+-------------+-------------+
    | ID | domanda_it | domanda_en | risposta_it | risposta_en |
    +----+------------+------------+-------------+-------------+
    vorrei che diventasse cosi
    codice:
    +----+------------+------------+-------------+-------------+--------+
    | ID | domanda_it | domanda_en | risposta_it | risposta_en | ordine |
    +----+------------+------------+-------------+-------------+--------+
    
    dove ordine è UNICO e INTERO
    fin qui nessun problema... però vorrei poterle ordinare anche DOPO, ad esempio ora ho 10 record, inserisco (tramite un apposito form creato) un nuovo record, e vorrei dare a questo il valore "ordine"=2. come faccio a far scalare gli altri automaticamente????

    non ho ancora fatto prove, ma ho come la sensazione che se mi limitassi ad inserire "2" mi risulti un messaggio d'errore (poichè il 2 è già esistente) i dubbi sono fondati???

    grazie mille in anticipo a chi vorrà darmi un consiglio
    hasta siempre comandante Guevara!

    bisogna prendere la vita come viene...sperando che la vita non "prenda" te!!!

  2. #2
    Devi fare una query di update per "spostare" tutti i record >= 2 di 1 e poi effettui l'inserimento. Se possibile, sarebbe meglio utilizzare una transazione o locktable per evitare problemi di concorrenza.

  3. #3
    Originariamente inviato da filippo.toso
    Devi fare una query di update per "spostare" tutti i record >= 2 di 1 e poi effettui l'inserimento.
    ehm... scusa... ma un po' e mattino, un po', pur masticando abbastanza PHP non sono programmatore...

    per "spostare" i record >2 dovrebbe essere una cosa del genere (butto giu velocemente...)

    codice:
    $ordine_nuovo_record=$_REQUEST['ordine'];
    $query="SELECT id,ordine FROM tabella WHERE ordine>$ordine_nuovo_record"
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result))
    {
    $n_ordine=$row['ordine']+1;
    $query="UPDATE tabella SET ordine='$n_ordine' where ID='$id';
    }
    mi è venuto questo... può andare...???

    inoltre...

    Originariamente inviato da filippo.toso
    Se possibile, sarebbe meglio utilizzare una transazione o locktable per evitare problemi di concorrenza.
    questo... non l'ho capito... scusa l'ignoranza... ma... puoi farmi un esempio (probabilmente questo annulla tutto quanto scritto sopra..

    grazie!
    hasta siempre comandante Guevara!

    bisogna prendere la vita come viene...sperando che la vita non "prenda" te!!!

  4. #4
    up
    hasta siempre comandante Guevara!

    bisogna prendere la vita come viene...sperando che la vita non "prenda" te!!!

  5. #5
    up
    hasta siempre comandante Guevara!

    bisogna prendere la vita come viene...sperando che la vita non "prenda" te!!!

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.