• User

    tenendo presente che non programmo in php le tue parole sono arabo...
    e comunque ho gà 3 campi con vittorie, pareggi, sconfitte


  • User Attivo

    Ti spiego.
    Tenendo presente che il radio button ti da la possibilità di scegliere solo un campo, nella tabella il campo deve essere solo uno tra vittorie-pareggi-sconfitte. Esempio precedente campo_1x2 - VARCHAR (9), sostituisce i campi vittorie-pareggi-sconfitte, il quale tramite $_POST['R1'] inserirà il valore del radio button scelto.
    $query="INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2, campo_1x2) VALUES ('{$_POST['data']}', '{$_POST['squadra1']}', '{$_POST['squadra2']}','{$_POST['goals1']}','{$_POST['goals2']}', '{$_POST['R1']}')";
    Mi sono spiegato?
    Se non ci riesci postami il codice

    CIAO


  • User

    il campo può essere benissimo triplice, ce l'ho già con un sistema simile per le statistiche giocatore, fidati...

    modulo.php
    [php]<head>
    <meta name="robots" content="noindex">
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Modulo inserimento GIOCATORI calcetto</title>
    </head>
    <FORM METHOD="post" ACTION="inserisci.php">
    <table border="1" width="100%" style="border-collapse: collapse" id="table1">
    <tr>
    <td width="15%" align="center"><b>COGNOME</b></td>
    <td width="15%" align="center"><b>NOME</b></td>
    <td width="15%" align="center"><b>GOALS</b></td>
    <td width="15%" align="center"><b>VITTORIA</b></td>
    <td width="15%" align="center"><b>PAREGGIO</b></td>
    <td width="15%" align="center"><b>SCONFITTA</b></td>
    <td width="15%" align="center"><b>NON PARTECIPA</b></td>
    </tr>
    <?php
    include("config.inc.php");
    $db = mysql_connect($host, $username);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($database, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "SELECT cognome, nome FROM calcetto ORDER BY id";

    $result = mysql_query ($query, $db);

    $i = 0;
    while ($line = mysql_fetch_array ($result))
    {
    $i++;
    echo '<tr>';
    echo '<td width="15%">' . $line['cognome'] . '</td>';
    echo '<td width="15%">' . $line['nome'] . '</td>';
    echo '<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals' . $i . '" size="5"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="4"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="2"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="1"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="0" checked></td>';
    echo '</tr>';
    }
    $new_player = 3; // qui il numero di nuovi giocatori
    for ($j = 1; $j <= $new_player; $j++)
    {
    $i++;
    echo '<td width="15%"><input type="text" name="cognome' . $j . '"></td>';
    echo '<td width="15%"><input type="text" name="nome' . $j . '"></td>';
    echo '<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals' . $i . '" size="5"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="4"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="2"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="1"></td>';
    echo '<td width="15%" align="center">';
    echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="0" checked></td>';
    echo '</tr>';
    }
    ?>
    </table> <INPUT TYPE="submit" VALUE="Inserisci"> </p> </FORM> [/php]

    inserisci.php
    [php]<?
    include("config.inc.php");
    $db = mysql_connect($host, $username);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($database, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    // 1. Crea la tabella temporanea
    $query = "CREATE TABLE tmp_calcetto (
    id INT (5) UNSIGNED not null,
    goals INT (5) UNSIGNED not null,
    vittorie INT (5) UNSIGNED not null,
    pareggi INT (5) UNSIGNED not null,
    sconfitte INT (5) UNSIGNED not null)";

    if (mysql_query($query, $db))
    echo "Creazione tabella temporanea eseguita correttamente";
    else
    echo "Errore durante creazione tabella temporanea";

    // 1-bis. Inserisce i nuovi giocatori, se impostati
    $new_player = false;
    $query = "INSERT INTO calcetto (cognome, nome, goals, vittorie, pareggi, sconfitte) VALUES ";
    $i = 0;
    // cognome e nome devono essere entrambi compilati
    while (isset ($_POST['cognome' . ++$i]) && $_POST['cognome' . $i] != NULL && $_POST['cognome' . $i] != '' && $_POST['nome' . $i] != NULL && $_POST['nome' . $i] != NULL)
    {
    $query .= "('" . $_POST['cognome' . $i] . "', '" . $_POST['nome' . $i] . "', 0, 0, 0, 0), ";
    $new_player = true;
    }
    if ($new_player)
    {
    $query = substr ($query, 0, strlen ($query) - 2);
    if (mysql_query($query, $db))
    echo "Inserimento nuovo giocatore eseguito correttamente";
    else
    echo "Errore durante inserimento nuovo giocatore";
    }

    // 2. Inizia la costruzione della query di inserimento...
    $query = "INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUES ";
    $i = 0;
    while (isset ($_POST['goals' . ++$i]))
    {
    if ($_POST['goals' . $i] == '' || $_POST['goals' . $i] == NULL)
    $values = '(' . $i . ', 0, ';
    else
    $values = '(' . $i . ', ' . $_POST['goals' . $i] . ', ';
    switch ($_POST['result' . $i])
    {
    case '4': $values .= '1, 0, 0), '; break;
    case '2': $values .= '0, 1, 0), '; break;
    case '1': $values .= '0, 0, 1), '; break;
    default: $values .= '0, 0, 0), '; break;
    }
    $query .= $values;
    }

    // ... poi elimina l'ultima virgola di troppo e la esegue
    $query = substr ($query, 0, strlen ($query) - 2);

    if (mysql_query($query, $db))
    echo "Inserimento dati in tabella temporanea eseguito correttamente";
    else
    echo "Errore durante inserimento dati nella tabella temporanea";

    // 3. Effettua l'aggiornamento
    $query = "UPDATE calcetto, tmp_calcetto
    SET calcetto.vittorie = calcetto.vittorie + tmp_calcetto.vittorie,
    calcetto.pareggi = calcetto.pareggi + tmp_calcetto.pareggi,
    calcetto.sconfitte = calcetto.sconfitte + tmp_calcetto.sconfitte,
    calcetto.goals = calcetto.goals + tmp_calcetto.goals
    WHERE calcetto.id = tmp_calcetto.id";

    if (mysql_query($query, $db))
    echo "Aggiornamento del database eseguito correttamente";
    else
    echo "Errore durante aggiornamento del database";

    // 4. Distruggi la tabella temporanea
    $query = "DROP TABLE tmp_calcetto";

    if (mysql_query ($query, $db))
    echo ("Operazione completata!");
    else
    echo ("Eliminazione della tabella temporanea non riuscita :-(");
    ?> [/php]

    comunque mi bsterebbe creare un ciclo dove se i goals della squadra1 sono maggiori della squadra 2 mi mette in automatico il valore uno nella cella delle vittorie, e così via per pareggi e sconfitte...tanto questa statistica di vittorie e pareggi è solo per la squadra 1


  • User

    ma il sistema che chiedi è uguale a quello dei giocatori, non puoi usare lo stesso script
    Ciao


  • User

    no, è diverso...


  • User

    guarda se questo corrisponde a ciò che ti serve:
    prendi tutti i dati dal form e li inserisci nelle variabili
    poi fai una serie di IF per i radio.
    ESEMPIO

    $risultato=$_POST['R1'];
    if ($risultato="vittoria"){
    $vittoria=1;
    $result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}
    else {if ($risultato="sconfitta"){
    $sconfitta=1;
    $result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=sq1);}
    else {
    $pareggio=1;
    $result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=sq1);}}

    Nelle query ci aggiungi gli altri campi, ho usato update perche penso tu abbia già le tabelle con i nomi, altrimenti usa insert, in questo caso negli IF aggiungi delle variabili vuote per i campi:figo: .

    Non sarà la soluzione piu' efficace, ma anche io sono agli inizi di php, quindi :bho:

    Ciao


  • User

    senti, facendo diversamente?
    a me serve solo che se goals1>goals 2 allora assegno il valore 1 nella cella vittorie, se goals1<goals 2 assegno il valore 1 nella cella sconfitte e se goals1=goals2 assegnoi il pareggio...tutto qui...


  • User

    @fantagalla said:

    senti, facendo diversamente?
    a me serve solo che se goals1>goals 2 allora assegno il valore 1 nella cella vittorie, se goals1<goals 2 assegno il valore 1 nella cella sconfitte e se goals1=goals2 assegnoi il pareggio...tutto qui...

    non cambi molto da quello che ho scritto negli if, al posto di confrontare il valore nel radio button , metti gol1 e gol2

    if ($gol1>$gol2){
    $vittoria=1;
    $result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}
    else {if ($gol1<$gol2){
    $sconfitta=1;
    $result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=sq1);}
    else {
    $pareggio=1;
    $result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=sq1);}}

    Per le query e la correttezza dei comandi vale come prima

    Ciao


  • User

    vabbeh, ma dove lo inserisco il pezzo i codice che hai postato tu?
    dammi la pagina completa..
    al momento mi da errore nella riga
    $result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}


  • User

    Prova cosi:

    <html><body>
    <?
    //prendo i dati dal form
    $squadra1=$_POST['squadra1'];
    $goals1 =$_POST['goals1'];
    $squadra2=$_POST['squadra2'];
    $goals2=$_POST['goals2'];
    $risultato=$_POST['R1'];

    // qui inserisci i dati per collegarti al db

    // controlli chi ha vinto
    if ($goals1>$goals2){
    $vittoria=1;
    $result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=$squadra1);
    echo "ha vinto la",$squadra1;}
    else {if ($goals1<$goals2){
    $sconfitta=1;
    $result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=$squadra1);
    echo "ha vinto la",$squadra2;}
    else {
    $pareggio=1;
    $result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=$squadra1);
    echo "pareggio, alla prossima ";}}

    //chiudi il db
    ?>
    <\body><\html>

    Con questo aggiorni i dati delle partite di un db gia' esistente con i nomi delle squadre (ecco perchè ho usato update), al posto dei caratteri rossi dovrai mettere i nomi delle tabelle e dei campi che possiedi. Naturalmente se, invece, devi aggiungere le righe al db dovrai usare INSERT (INSERT INTO table VALUES '$squadra1','$squadra2', '$goals1', '$goals2','$vittoria','$pareggio','$sconfitta'), controllando l'ordine dei campi.

    Ciao


  • User

    allora, io ho questo form:

    [PHP]<head>
    <meta name="robots" content="noindex">
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Modulo inserimento RISULTATI calcetto</title>
    </head>
    <FORM METHOD="post" ACTION="inserisci_risultati.php">
    <table border="1" width="100%" style="border-collapse: collapse" id="table1">
    <tr>
    <td width="20%" align="center"><b>DATA</b></td>
    <td width="20%" align="center"><b>SQUADRA 1</b></td>
    <td width="20%" align="center"><b>GOALS 1</b></td>
    <td width="20%" align="center"><b>SQUADRA2</b></td>
    <td width="20%" align="center"><b>GOALS 2</b></td>
    </tr>
    <tr>
    <td width="20%" align="center"> <INPUT TYPE="text" NAME="data" size="15"></td>
    <td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra1" size="20"></td>
    <td width="20%" align="center"> <INPUT TYPE="text" NAME="goals1" size="5"></td>
    <td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra2" size="20"></td>
    <td width="20%" align="center"> <INPUT TYPE="text" NAME="goals2" size="5"></td>
    </tr>
    </table>
    <INPUT TYPE="submit" VALUE="Inserisci"></FORM> [/PHP]

    e ho una tabella di nome calcetto_risultati
    in cui ho i campi:
    ID, DATA, SQUADRA1, SQUADRA2, GOALS1, GOALS2, VITTORIE, PAREGGI, SCONFITTE

    per ogni partita aggiungo una riga nuova.
    quindi, il codice esatto è?