Non ho capito molto quello che ti serve.... ad essere sinceri.
Ad ogni modo, il ragionamento che segue il sito che hai postato come esempio è relativamente semplice.
La pagina di front-end prevede una interazione con l'utente che esprime una sorta di voto a delle questioni.
Tale voto viene registrato in un apposito campo della tabella.
In estrapolazione dei dati ordini in base al numero di voti raggiunti per una singola tabella.

Tornando all'esempio da te linkato, hai una form (lì rappresentata con degli slider per aumentare o diminuire il "voto") che ti chiede di esprimere il tuo giudizio su alcuni argomenti.
Molto probabilmente sarà interfacciata a due tabelle del DB.
La prima conterrà le domande da presentare agli utenti, la seconda conterrà il risultato dei singoli voti.
Probabilmente sarà strutturata come segue:

codice:
// TABELLA 1: Domande
    id INT UNSIGNED AUTO_INCREMENT
    domanda TEXT

// TABELLA 2: risposte
    id INT UNSIGNED AUTO_INCREMENT
    id_domanda INT UNSIGNED
    voto INT
    luogo VARCHAR
Quando l'utente muove lo slider e preme "salva", verrà aggiornata la seconda tabella.
Ogni domanda (della prima tabella) ha un ID, che viene salvato (come riferimento) nella seconda tabella nel campo ID_DOMANDA.
Insieme a questo, si salva il numero corrispondente al voto nella specifica colonna della seconda tabella, e (da quello che ho capito) anche le coordinate geografiche relative al luogo da cui si è espresso il proprio parere.

Quando si mostrano i risultati del voto, si collegano le due tabelle - mettendole in relazione per TAB1.id e TAB2.d_domanda - e si mostrano i risultati ordinati secondo il metodo che hai prescelto!