Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97

    classifica calcio non va

    Ciao ragazzi, vi scrivo per la terza volta perché ho bisogno di aiuto per la costruzione di una classifica calcio amatoriale "lo faccio per hobby" gestisco un sito di una squadra di terza categoria.
    non riesco ad stampare a video questa query mi da errore di sintassi mi dareste un occhiata,
    il punto è questo: sum(if(punteggio=3 and dove = "C",1,0)) as vittorie_casa,
    <?php

    $conn = @new mysqli('localhost', 'root', 'xxxxxxxx', 'classifica');
    if (mysqli_connect_errno() != 0)
    {
    $errno = mysqli_connect_errno();
    $errmsg = mysqli_connect_error();
    echo "Connect Failed with: ($errno) $errmsg
    \n";
    exit;
    }

    //
    // don't forget to set our query as UTF-8 !!!!
    //
    $conn->query("SET NAMES 'utf8'");

    $query_str = "SELECT * FROM campionato select squadra,
    count(squadra) as partite,
    sum(if(punteggio=3,1,0)) as vittorie,
    sum(if(punteggio=1,1,0)) as pareggi,
    sum(if(punteggio=0,1,0)) as sconfitte,
    sum(punteggio) as punteggio,
    sum(fatti) as fatti,
    sum(subiti) as subiti,
    sum(fatti)-sum(subiti) as diff_reti,
    sum(if(punteggio=3 and dove = "C",1,0)) as vittorie_casa,
    sum(if(punteggio=1 and dove = "C",1,0)) as pareggi_casa,
    sum(if(punteggio=0 and dove = "C",1,0)) as sconfitte_casa,
    sum(if(punteggio=3 and dove = "T",1,0)) as vittorie_trasferta,
    sum(if(punteggio=1 and dove = "T",1,0)) as pareggi_trasferta,
    sum(if(punteggio=0 and dove = "T",1,0)) as sconfitte_trasferta
    from
    (
    select sq_casa as squadra,gol_casa as fatti,gol_trasferta as subiti,"C" as dove,
    case
    when gol_casa > gol_trasferta then 3
    when gol_casa = gol_trasferta then 1
    else 0
    end as punteggio
    from campionato
    union all
    select sq_trasferta as squadra,gol_trasferta as fatti,gol_casa as subiti,"T",
    case
    when gol_trasferta > gol_casa then 3
    when gol_trasferta = gol_casa then 1
    else 0
    end as punteggio
    from campionato
    ) as tab
    group by squadra
    order by punteggio desc";
    $result = $conn->query($query_str);
    if ($result === FALSE)
    {
    $errno = $conn->errno;
    $errmsg = $conn->error;
    echo "Connect Failed with: ($errno) $errmsg
    \n";
    $conn->close();
    exit;
    }
    else
    {
    echo <<<EOM
    <table border='1'>
    <tr>
    <td>User ID</td>
    <td>squadre</td>
    <td>punteggio</td>
    <td>partite</td>
    <td>fatti</td>
    <td>subiti</td>
    <td>vittorie</td>
    <td>pareggi</td>
    <td>sconfitte</td>
    <td>diff_reti</td>
    <td>vittorie_casa</td>
    <td>pareggi_casa</td>
    <td>sconfitte_casa</td>
    <td>vittorie_trasferta</td>
    <td>pareggi_trasferta</td>
    </tr>

    EOM;

    while (($row_data = $result->fetch_assoc()) !== NULL)
    {
    echo <<<EOM
    <tr>
    <td>{$row_data['contatore']}</td>
    <td>{$row_data['user_id']}</td>
    <td>{$row_data['squadre']}</td>
    <td>{$row_data['punteggio']}</td>
    <td>{$row_data['partite']}</td>
    <td>{$row_data['fatti']}</td>
    <td>{$row_data['subiti']}</td>
    <td>{$row_data['vittorie']}</td>
    <td>{$row_data['pareggi']}</td>
    <td>{$row_data['sconfitte']}</td>
    <td>{$row_data['diff_reti']}</td>
    <td>{$row_data['vittorie_casa']}</td>
    <td>{$row_data['pareggi_casa']}</td>
    <td>{$row_data['sconfitte_casa']}</td>
    <td>{$row_data['vittorie_trasferta']}</td>
    <td>{$row_data['pareggi_trasferta']}</td>
    </tr>

    EOM;
    }

    echo <<<EOTABLE

    </table>

    EOTABLE;


    //
    // clean up resultsets when we're done with them!
    //
    $result->close();
    }

    //
    // finally, clean up the connection.
    //
    $conn->close();

    ?>
    Un saluto a tutti

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    posta l'errore esatto

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    Ciao e grazie per l'aiuto, Errore:
    Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\noventa_di_piave\calcio\1_squadra\ clas\prova_campionato.php on line 33

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sostituisci i doppi apici

    sum(if(punteggio=3 and dove = "C",1,0))

    con quelli singoli

    sum(if(punteggio=3 and dove = 'C',1,0))



    edit. Ovviamente ripeti la cosa anche per le righe sottostanti visto che racchiudi la query tra doppi apici.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    ho pensato che se ti faccio vedere cosa sto facendo forse ne puoi capire un po di piu query sql:
    CREATE TABLE `campionato` (
    `id` int(11) NOT NULL auto_increment,
    `sq_casa` varchar(50) default NULL,
    `sq_trasferta` varchar(50) default NULL,
    `gol_casa` tinyint(4) default NULL,
    `gol_trasferta` tinyint(4) default NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

    /*Data for the table `campionato` */

    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (1,'Bibione','CasierDosson',3,1);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (2,'Caorle','Jesolo',0,0);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (3,'Marghera','Sanstinocorbolone',1,0);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (4,'Eraclea','Silea',1,2);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (5,'Ceggia','NettunoLido',1,1);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (6,'Mazzolada','RealSanMarco',1,0);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (7,'Pramaggiore','Cavallino',0,1);
    insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_tra sferta`) values (8,'U.Sandonatese','Noventa',1,1);



    select squadra,
    count(squadra) as partite,
    sum(if(punteggio=3,1,0)) as vittorie,
    sum(if(punteggio=1,1,0)) as pareggi,
    sum(if(punteggio=0,1,0)) as sconfitte,
    sum(punteggio) as punteggio,
    sum(fatti) as fatti,
    sum(subiti) as subiti,
    sum(fatti)-sum(subiti) as diff_reti,
    sum(if(punteggio=3 and dove = "C",1,0)) as vittorie_casa,
    sum(if(punteggio=1 and dove = "C",1,0)) as pareggi_casa,
    sum(if(punteggio=0 and dove = "C",1,0)) as sconfitte_casa,
    sum(if(punteggio=3 and dove = "T",1,0)) as vittorie_trasferta,
    sum(if(punteggio=1 and dove = "T",1,0)) as pareggi_trasferta,
    sum(if(punteggio=0 and dove = "T",1,0)) as sconfitte_trasferta
    from
    (
    select sq_casa as squadra,gol_casa as fatti,gol_trasferta as subiti,"C" as dove,
    case
    when gol_casa > gol_trasferta then 3
    when gol_casa = gol_trasferta then 1
    else 0
    end as punteggio
    from campionato
    union all
    select sq_trasferta as squadra,gol_trasferta as fatti,gol_casa as subiti,"T",
    case
    when gol_trasferta > gol_casa then 3
    when gol_trasferta = gol_casa then 1
    else 0
    end as punteggio
    from campionato
    ) as tab
    group by squadra
    order by punteggio desc

    Ciao e grazie

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La conosco quella query. L'avevo scritta io.
    Cos'ha che non va?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    non riesco a stamparla a video

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    mi daresti o meglio mi faresti vedere dove sto sbagliando?

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mi è saltato adesso all'occhio che la tua query inizia con

    SELECT * FROM campionato select squadra

    Già quello è un errore. Nel mio dump la query è diversa. Incollala pari pari e sostituisci tutti i doppi apici con quelli singoli come ti ho scritto prima.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    Susami ancora ma ho perso l'orininale mi invieresti per favore la query o il link

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.