-
Problema query
Ciao raga!
Vi espongo subito il mio problema: io devo creare una query che estragga dal db dei dati e li ordini in modo decrescente......mi spiego meglio: devo fare una classifica in php/mysql e in pratica chi ha più punti deve essere in testa etc....insomma una classifica!
Poi dovevo far comparire affianco al nome un trangolino verde se il nome sale in classifica e uno rosso se il nome scende,come potrei fare?
Grazie anticipatamente per le dritte!
-
Prima di tutto devi dirci com'è strutturata la tabella o le tabelle insteressate.
Per la questione del trend, devi rapportare i record di un range di tempo con un altro. Devi decidere tu quale (la settimana corrente con la scorsa, o il mese, o l'anno, ecc)
Ciao!
-
la tabella non l'ho ancora creata ma dovrebbe essere qualcosa del tipo:
id|nome giocatore|punteggio
una cosa semplice insomma che riesco a crearmi da solo!
Invece non mi è molto chiaro come risolvere il problema delle freccie rosse e verdi......comunque il tempo è in base settimanale trattandosi di una classifica per il fantacalcio!
-
La query sarà semplice:
Codice:
SELECT * FROM tabella ORDER BY punteggio DESC
Dovrai però aggiungere un campo 'giorno' in cui memorizzi la data relativa a quel record, per poi fare un'altra query della scorsa settimana e fare il confronto: se il punteggio della prima query è superiore allo stesso della seconda query, la freccia sarà in su (trend crescente), altrimenti giù (trend decrescente); se sono uguali potrai mettere un'immagine di uguale.
Ciao!
-
scusa ma non ho ben capito(oggi sono tardo :mrgreen:) quale sarà la query che devo confrontare tra loro?
thx x la pazienza che stai portando!
-
Una volta aggiunto il campo con la data di ogni record, dovrai fare due query: una per il periodo scelto (la settimana corrente?) e un'altra per la settimana precedente a quella scelta (entrambi i range di tempo te le ricavi con php, con le funzioni date e mktime).
Una volta estratti questi dati, li puoi confrontare tramite le funzioni per gli array.
Ciao!
-
in pratica debug sta cercando di dire qualcosa del genere:
Codice PHP:
<?php
//connessione
$con = mysql_connect(..);
mysql_select...);
$query = "SELECT * FROM tabella ORDER BY punteggio DESC";
$result = mysl_query($query);
while ($row = mysql_fetch_array($result)) {
$attualepunteggio = "punteggio di adesso(in int)";
echo $row['utente'] . 'ha di punteggio ' . '$attualepunteggio . ' ';
if ($attualepunteggio >= $row['punteggio']) {
echo '<img src="salito.gif">';
}
elseif ($auttualepunteggio == $row['punteggio']) {
echo '<img src="satatico.gif">';
}
else {
echo '<img src="sceso.gif">';
}
}
?>
è un esempio proprio banale
certo è da dire che dovrai trovare un modo di fare gli upload ed anche di trovare il nuovo punteggio, altrimenti potresti fare un campo con il vecchio punteggio ed uno con il nuovo ed al posto della variabile $attualepunteggio ci metti $row['nuovopunteggio'] così avresti solo il problema degli upload
ciao