Newsgroup: it.comp.www.php
Titolo: creo una funzione?

Ciao a tutti!
Ho bisogno di estrapolare solo un dato da un campo di un db. Mi spiego
meglio:
ho una tabella stagione con questi campi:
id_stag
stagione
io voglio visualizzare solo i dati relativi all'ultima stagione.
Io avevo fatto una query con select * from stagione where stagione =
"2002-2003" oppure impostando una variabile $anno="2002-2003"
Volevo sapere se c'è un modo per fare in modo che quando il prossimo anno
inserirò 2003-2004 non dovrò aggiornare la query e nemmemo la variabile
$anno.
Grazie!

 $anno.
nella tabella crei un campo DATE, poi l'anno corrente lo puoi ottenere 
con la funzione date() di php. prova un po' a smanettare...
-- 
signature: No such file or directory

 con la funzione date() di php. prova un po' a smanettare...
In alternativa puoi fare anche cosě:
$anno = date("Y");
$stagione = $anno . "-" . ($anno+1);
mysql_query("SELECT * FROM tabella WHERE stagione LIKE '$stagione'");
In questo modo non modifichi la tabella e la query non č da modificare.
Ciao
Marco

 "2002-2003" oppure impostando una variabile $anno="2002-2003"
il piů semplice che mi viene in mente:
SELECT FROM tabella ORDER BY stagione DESC
e prendi il primo record
-- 
Ranger! 
www.rossi.eu.com
aggiungi .it alla mail x rispondermi

 "2002-2003" 
Se non ho capito male potresti usare qualcosa del tipo:
select * from stagione where stagione =
 concat_ws('-', year(curdate() - interval 1 year), year(curdate()));
Ciao
--ev

Appunto, il mio problema č che non so come prendere solo il primo record...


 Appunto, il mio problema č che non so come prendere solo il primo record...
cosě:
$query = "SELECT FROM tabella ORDER BY stagione DESC";
$id = mysql_query($query);
$row = mysql_fetch_array($id, MYSQL_ASSOC);
mysql_free_result($id);
ed in $row[] ti ritrovi il risultato. nella documentazione ci sono diversi esempi.
Ciao


Grazie per la risposta ma preferirei anche capire, me lo potresti
commentare?


>  concat_ws('-', year(curdate() - interval 1 year), year(curdate()));
Beh, credo che la cosa "complessa" sia la seconda parte, ossia:
concat_ws('-', year(curdate() - interval 1 year), year(curdate()));
"spezzettandola" viene fuori:
concat_ws(ARGOMENTI)
year(curdate() - interval 1 year)
year(curdate())
Partendo dall'ultimo (per chiarezza):
year(curdate()) significa: "l'anno ricavato dalla data corrente". In
pratica, 2003.
year(curdate() - interval 1 year) significa: "togli un anno dalla data
corrente, ed estrapola l'anno da quello che salta fuori". E qui salta
fuori l'anno precedente (2003)
concat_ws(ARGOMENTI) non fa altro che concatenare tramite il separatore
'-' (quello che serve a te) le due date, così che ti salti fuori:
2002-2003
proprio come serve a te!
Per la cronaca, la funzione concat_ws serve per concatenare due o più
stringhe, e prende come primo argomento il separatore, seguito dalle
stringhe da concatenare separate da virgole.
[Se vuoi provare, da mysql puoi anche lanciare:
mysql> select concat_ws('-', year(curdate() - interval 1 year),year(curdate()));
e vedi cosa salta fuori! :-) ]
Così facendo, con la select da cui siamo partiti ottieni direttamente
l'ultima stagione che ti interessa, ossia quella che parte dall'anno
prima dell'anno corrente (2002) e che termina nell'anno corrente (2003)!
So che in italiano non è chiarissimo ma spero di essermi spiegato!
Ciao
--ev

 fuori l'anno precedente (2003)
Ops, 2002, non 2003!!!
 
Ciao
--ev