Newsgroup: it.comp.www.php
Titolo: Aiuto per una query...

Salve a tutti,
avrei bisogno di un aiuto per una quert
o,meglio,per scegliere i risultati della query
per poter mostrare i risultati dell'ultima giornata
di un campionato.
Mi spiego meglio,ho questa query:
___________________________
$get_matches = mysql_query("
   SELECT O.OpponentName AS hometeam,
   OP.OpponentName AS awayteam,
   LM.LeagueMatchHomeGoals AS goals_home,
   LM.LeagueMatchAwayGoals AS goals_away,
   LM.LeagueMatchID AS id,
   DATE_FORMAT(LM.LeagueMatchDate, '$print_date') AS date
   FROM tplls_leaguematches LM, tplls_opponents O, tplls_opponents OP
   WHERE O.OpponentID = LM.LeagueMatchHomeID AND
   OP.OpponentID = LM.LeagueMatchAwayID AND
   LM.LeagueMatchHomeGoals IS NOT NULL AND
   LeagueMatchSeasonID LIKE '$defaultseasonid'
   ORDER BY LM.LeagueMatchDate DESC",$connection)
   or die(mysql_error());
____________________________
A me servirebbe selezionare i risultati in base
alla data più recente(vi è un campo nel DB di tipo TIME
che registra le date degli incontri)
Ho provato ad aggiungere la condizione
GROUP BY LM.LeagueMatchDate
ma non funge bene perchè mi visualizza solo
una partita e non tutte le partite dell'ultima
giornata.
Spero possiate aiutarmi.
Grazie in anticipo,dario.

 Mi spiego meglio,ho questa query:
Ma già le ordini per data.
Quindi puoi fare un ciclo che preleva i dati record per record, e non appena
il valore della data cambia, ti interrompi.
Oppure puoi preventivamente recuperare il valore della data dell'ultima
giornata e lo usi per filtrare la query:
$ultima = ...
$query = "SELECT ... WHERE data=$ultima ...";
Ciao
Marco


Come posso definire la variabile
$ultima = ...
recuperando l'ultima data?
Non sono molto ferrato.
Grazie ancora.

 recuperando l'ultima data?
Dipende da come è fatto il db.
Ma supponiamo che il campo "data" sia all'interno della tabella "partite".
SELECT MAX(data) AS data
FROM partite
Ciao
Marco

 ha scritto nel messaggio
news:c2q91b$rna$1...@newsreader.mailgate.org...

Ho provato,ma non funziona.
Allora il campo delle date è "LeagueMatchDate"
e si trova nella tabella "leaguematches";
quindi come hai giustamente supposto.
La query,però già presenta:
DATE_FORMAT(LM.LeagueMatchDate, '$print_date') AS date
se vi aggiungo
MAX(LM.LeagueMatchDate) AS date
non funziona più.
Fammi sapere.

 non funziona più.
Non hai capito.
Quando ho detto "preventivamente" non intendevo "modifica la mega-query".
Intendevo fare una query solo per recuperare il valore dell'ultima giornata.
Poi il valore lo usi nella mega-query.
In sostanza fai 2 query.
Ciao
Marco

 Marco
Scusa se ti disturbo ancora.
Ho chiara la logica ma non sono
riuscito a farla andare ancora.
Adesso ho:
______________________
if($defaultshow == 1)
  {
   $get_lastdate =$xoopsDB->queryF("
   SELECT MAX(LM.LeagueMatchDate) AS date
   FROM ".$xoopsDB->prefix("tplls_leaguematches")." LM");
   $get_matches = $xoopsDB->queryF("
   SELECT O.OpponentName AS hometeam,
   OP.OpponentName AS awayteam,
   LM.LeagueMatchHomeGoals AS goals_home,
   LM.LeagueMatchAwayGoals AS goals_away,
   LM.LeagueMatchID AS id,
   DATE_FORMAT('$get_lastdate', '$print_date') AS date
   FROM ".$xoopsDB->prefix("tplls_leaguematches")." LM,
".$xoopsDB->prefix("tplls_opponents")." O,
".$xoopsDB->prefix("tplls_opponents")." OP
   WHERE O.OpponentID = LM.LeagueMatchHomeID AND
   OP.OpponentID = LM.LeagueMatchAwayID AND
   LM.LeagueMatchDate = '$get_lastdate' AND
   LeagueMatchSeasonID LIKE '$defaultseasonid'
   ");
  }
____________________________________
Ho provato di tutto,ma a questo punto credo
che ci sia un errore di impostazione o di ignoranza.
Dal debug del mysql non ricevo errori ma adesso
non dà proprio nessuna squadra.
Spero tu possa aiutarmi ancora.
Ciao,dario.

 riuscito a farla andare ancora.
Adesso ci siamo.
Prova a controllare il formato con cui vengono memorizzate le date.
Se non ricordo male, TIME è un intero a 32 bit e come tale deve essere
testato.
Magari fai alcune prove con delle query semplici.
Ciao
Marco