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

    Inserimento record in ordine NON riconducibile a ordine temporale di inserimento

    Ciao a tutti,
    sto sviluppando un piccolo sistema per delle votazioni on line (in php e mysql)
    il sistema prevede un elenco di persone che potranno votare (con id e pw) 1 sola volta, ma il loro voto deve essere anonimo.
    Dovrò registrare in una tabella i votanti (con data e ora voto), e in un'altra i voti (non quindi collegati al votante).
    Così facendo teoricamente guardando l'ordine di inserimento dei votanti e l'ordine dei voti potrei risalire a chi ha votato cosa...


    Avrei bisogno di poter avere un ordine completamente random della tabella dei votanti e dei voti...


    Pensavo di mettere una chiave Unica RANDOM ad ogni inserimento, ma comunque entrando in phpmyadmin banalmente se seleziono "ORDINA PER CHIAVE: NESSUNA", mi mostra i record in ordine di inserimento...


    Qualche idea?

  2. #2
    non puoi decidere tu l'ordine naturale in cui il db inserisce i dati in tabella

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    non puoi decidere tu l'ordine naturale in cui il db inserisce i dati in tabella
    Immaginavo, potrei AD OGNI voto riordinare la tabella con un comando tipo
    ALTER TABLE ***** ORDER BY randomID
    (dove random ID è un ID unico casuale alfabumerico)

    Qui però ho un altro dubbio: arrivando ad avere anche 10000 record, se mentre viene riordinata la tabella un altro utente vota rischio di perdere l'inserimento?

  4. #4
    prova a cambiare approccio. Per esempio, il voto è una scelta tra A, B o C? Incrementa dei contatori, piuttosto che salvare i voti, che poi tanto alla fine li devi comunque contare

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    prova a cambiare approccio. Per esempio, il voto è una scelta tra A, B o C? Incrementa dei contatori, piuttosto che salvare i voti, che poi tanto alla fine li devi comunque contare
    Ci avevo pensato, ma con un semplice contatore che si incrementa se due o più utenti votano nello stesso preciso istante non rischio di perdermi un voto?
    Voglio dure, se il counter ad un certo punto è a 10 , due persone votano nello stesso preciso istante (e su 10000 votanti in poco tempo è possibile), per entrambi verrà letto il valore 10 e incrementato a 11... e mi perdo un voto....
    Se mi ritrovo 10000 votanti e 9999 voti mi invalidano il tutto. .

  6. #6
    il db incoda sempre le operazioni; se non sei tranquillo, incodale tu

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    191
    In realtà il contatore dinamico va creato (dunque il campo sarà fisso) per il proprio cambiamento, cioè a dire solo quando l'istruzione SQL termina e non riutilizzata per futuri usi. Cioè il votante esprime il voto per il candidato e solo alla successiva istruzione SQL di verifica inserimento è presente.
    Quindi se x voti e y counter sono costanti il risultato è sempre uguale. Cioè stampare a video il risultato dei vari counter (in quel momento è fisso).
    Per me un voto valido è se come il programmatore la pensa.
    ps. Ovviamente il codice è incompleto, indica il non accodamento
    Ultima modifica di darbula; 12-06-2022 a 13:12

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.