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

    QUERY abbastanza articolata

    Mi sono incastrato di nuovo.....
    In breve.

    Sto creando un supporto per il mio sito di fantacalcio.
    Nel caso specifico devo conteggiare le presenze ed i gol nelle Nazionali, per ogni Fantasquadra.

    Ho creato una tabella "rose" con vari campi tra cui:
    id,sq,ruolo,nome.
    ex
    0; REAL; PORTIERE; BUFFON;
    Questa tabella contiene ovviamente le rose delle Fantasquadre.

    Nella tabella nazionale, ho invece i seguenti campi:
    id, sq_casa, sq_fuori, gol_casa, gol_fuori, presenze, gol
    ex
    0; ITALIA; ROMANIA; 3;0; PANUCCI; 1;
    0; ITALIA; ROMANIA; 3;0; GILARDINO 2;

    Praticamente, per ogni partita della nazionale aggiungo un record per ogni giocatore.

    Per fare il resoconto dettagliato di tutto cio', ho fatto cosi:

    Codice PHP:
    $dati=mysql_query("SELECT * FROM rose WHERE sq='$sq' ORDER BY ruolo DESC"); 
     while(list(
    $id,$sq,$ruolo,$nome,$contratto,$ingaggio)=mysql_fetch_array($dati))
     { 
    $mark=mysql_query("SELECT * FROM nazionali WHERE giocatore='$nome'"); 
    $num=mysql_num_rows($mark);
    if (
    $num != 0) echo "<td>$nome $num
    </td>"
    ; else  echo "<td></td>";

    Questa query mi confronta i nomi presenti nella tabella rose, con quelli in nazionali, e li conta. Quindi se in rosa ho Adriano, ed e' presente nella tabella Nazionali 3 volte, mi stampera' ADRIANO 3.
    Tutto ok fin qui.

    Non riesco pero' a fargli contare i gol. Le sto provando tutte....

    Ho creato un'altra query
    Codice PHP:
    $query_gol=mysql_query("SELECT * FROM rose, nazionali WHERE nazionali.giocatore=rose.nome AND rose.sq='$sq' ORDER BY ruolo DESC");
    while (
    $gol=mysql_fetch_array($query_gol)) 
    {
    if (
    $gol['gol'] > 0) echo"$gol[giocatore] $gol[gol]
    "
    ;

    Questa diciamo che funziona, mi stampa a video l'elenco dei giocatori che hanno segnato per ogni rosa. Pero', dato che nella tabella nazionali i giocatori possono essere presenti piu' volte, il risultato a video e' questo:
    MATERAZZI 1
    ADRIANO 1
    ADRIANO 1

    Se gli do GROUP BY NOME, non mi fa piu' il conto dei gol, se per esempio in un record il giocatore ha 1 gol ed in un altro 0, mi stampa zero....

    Questo e' quanto ho fatto sin'ora....
    http://www.interleague.it/Gestione_N...naz_income.htm
    Questa e' la tabella rose:
    http://www.interleague.it/rose.htm
    Questa e' la tabella nazionali:
    http://www.interleague.it/Gestione_N..._admintest.php

    Scusate la noia....

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    25

    prova

    SELECT nome, count(gol)
    FROM rose LEFT OUTER JOIN nazionali ON nome = giocatore
    GROUP BY nome
    http://sqleonardo.altervista.org

  3. #3
    Thx ma il risultato e' lo stesso.

    Ho fatto cosi

    Codice PHP:
    "SELECT *, 
    SUM(gol) FROM nazionali 
    LEFT OUTER JOIN rose ON nazionali.giocatore = rose.nome 
    WHERE sq = '
    $sq
    GROUP BY nome" 
    pero' sussiste il problema.
    Ti faccio un esempio:

    BOGDANI ha 2 presenze e 2 gol, quindi 2 record in "nazionali" BOGDANI 0 e BOGDANI 2. Mi stampa a video BOGADNI 2, quindi ok

    ADRIANO HA 2 presenze e 1 gol, in "nazionali" ho 2 record ADRIANO 1, e ADRIANO 0. Non mi stampa nulla.....

    ma perche??????????

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.