Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 48 di 48

Discussione: Inserire dati nel database tramite form php

  1. #31
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    inserendo tutti i valori in tutti i campi me lo accetta...però a me interessa riempire solo i campi interessati e quindi poter passare dei campi vuoti...
    anche perchè, nel caso in cui uno dei giocatori della rosa non gioca chiaramente non mi interessa segnare il risultato ottenuto per lui, in quanto assente
    Continuando con il codice di prima, devi solo aggiungere un po' di righe (te le segno in rosso):
    Codice:
    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;
    }
    In questo modo saranno "aggiornati" anche i giocatori che non hanno partecipato, ma senza aumentare i goal o le presenze (quindi, nulla di fatto).

    Un consiglio: visto che c'è questa opzione per evitare di fare aggiornamenti fasulli (dovuti ad un clic errato sui pulsanti radio non più rimediabile) ti consiglio di aggiungere al modulo un altro pulsante "radio" con la voce "non partecipa", in modo da prevenire quest'errore... naturalmente dovrà avere lo stesso nome per ogni riga ed un valore diverso da 1, 2 o 4...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  2. #32
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    ok, mitico...adesso funziona perfettamente!!!

    ora provo a mettere il pulsante radio di default se non partecipa...

    sapresti anche dirmi come mettere l'opzione per inserire un nuovo giocatore nel database nel caso in cui un nuovo giocatore non ancora presente viene schierato?

  3. #33
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    È una cosa che si può fare, ma con il limite di un massimo numero di inserimenti possibile (leggi: se predisponi 3 campi per l'inserimento, non potrai inserire 4 nuovi giocatori). Per farlo devi anche modificare la pagina "inserisci.php" (dove, a questo punto, ti aggiungo anche il pulsante "non partecipa").

    Come al solito, ti evidenzio le modifiche in rosso:
    Codice:
    <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
    $query = "SELECT Nome, Cognome FROM Tabella 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"></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"></td>';
       echo '</tr>';
    }
    ?>
    </table> <INPUT TYPE="submit" VALUE="Inserisci"> </p> </FORM>
    Nella pagina inserisci.php devi aggiungere questo codice (il numero del commento dovrebbe suggerirti dove...):
    Codice PHP:
    // 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 nuovi giocatori non riuscito");
    }
    Stammi bene...
    Ultima modifica di dementialsite : 12-12-2006 alle ore 10.53.00
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #34
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    ok, ho provato e funziona...però ho dovuto correggere una cosa, la riporto per i posteri:

    Codice PHP:
    // 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";
    }

    EDIT: un'altra domanda....

    sto recuperando alcuni altri valori dal database, ad esempio per la classifica marcatori.

    come faccio a prendere solo i valori maggiori di 0?

    avevo provato con WHERE goals >0 ma non funge

    adesso ho questo pezzo di codice:

    Codice PHP:
    $query = "SELECT nome, cognome, goals FROM `calcetto` ORDER BY goals DESC";

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

    $i = 0;
    while (
    $line = mysql_fetch_array ($result))
    {
    $i++;
    echo
    '<tr>';
    echo
    '<td width="20%" align="center" bgcolor="#999999">' . $line['goals'] . '</td>';
    echo
    '<td width="40%" bgcolor="#999999">' . $line['cognome'] . ' ' . $line['nome'] . '</td>';
    echo
    '</tr>';
    }

    RI-EDIT: mi rispond da solo...

    WHERE goals>0 ORDER BY goals DESC

    così funziona...ho letto che order by va messo sempre alla fne...e forse dovevo scrivere goals>0 senza spazi


    FunCool: Non scrivere i messaggi consecutivi, utilizza il tasto Edita.
    Ultima modifica di funcool : 12-12-2006 alle ore 18.22.37

  5. #35
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    ok, ho provato e funziona...però ho dovuto correggere una cosa, la riporto per i posteri:...
    Guarda che non è che prima fosse sbagliato, l'unica cosa che vedo diversa è che sopra in caso di esito positivo non viene visualizzato niente, così è un po' meno pesante
    Citazione Originalmente inviato da FantaGalla
    ... e forse dovevo scrivere goals>0 senza spazi
    È decisamente più probabile che non avessi rispettato l'ordine delle clausole, che è il seguente (è obbligatoria solo SELECT):
    SELECT (lista attributi da estrarre o generare)
    FROM (lista tabelle da esaminare)
    WHERE (condizioni di selezione record)
    GROUP BY (lista attributi di raggruppamento)
    HAVING (condizioni di selezione gruppi)
    ORDER BY (criteri di ordinamento)
    LIMIT (record iniziale, numero record)

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #36
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    no, ti assicuro che mi dava errore con la tua procedura...
    come in un'altro passaggio di alcuni topic fa se ricordi...
    non è che al mysql di altervista è indigesto il comando preceduto dal punto esclamativo?

  7. #37
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    ... non è che al mysql di altervista è indigesto il comando preceduto dal punto esclamativo?
    No... ho trovato adesso l'errore. Avevo scritto:
    Codice:
    if (!$mysql_query ($query, $db))
    con un "dollaro" di troppo (mysql_query è una funzione e non una variabile...).

    Il punto esclamativo serve semplicemente a fare la negazione di un valore logico (restituito da mysql_query come true se va tutto bene o false se qualcosa va storto)...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #38
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    sto cercando di modificare il form per l'inserimento dei risultati i modo da avere anche li i pulsanti radio per vittoria, pareggio, sconfitta...
    ma non mi funzionano i pulsanti, posto il codice:

    Codice PHP:
    <? $conn=mysql_connect("localhost","fantagalla");
    if (!
    $conn){
    echo (
    "Errore durante la connessione a mysql!");
    exit();
    }
    $db_name="my_fantagalla";
    mysql_select_db($db_name,$conn);

    $query="INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2) VALUES ('{$_POST['data']}', '{$_POST['squadra1']}', '{$_POST['squadra2']}','{$_POST['goals1']}','{$_POST['goals2']}')";
    switch (
    $_POST['R1'])
    {
    case
    'Vittoria': $values .= '1, 0, 0), '; break;
    case
    'Pareggio': $values .= '0, 1, 0), '; break;
    case
    'Sconfitta': $values .= '0, 0, 1), '; break;
    default:
    $values .= '0, 0, 0), '; break;
    }

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

    echo(
    "Risultato aggiunto correttamente");
    mysql_close($conn);
    ?>

  9. #39
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    C'è qualcosa che non quadra nel tuo codice:
    - prima crei una query che inserisce un nuovo record impostando 5 dei suoi campi (e scrivendo per gli altri i rispettivi valori di default)
    - poi esamini i risultati e crei una stringa (senza alcun nesso con la query, ti sei dimenticato di fare alla fine query .= values;) in base al valore di una variabile di post
    - esegui la query (che sintatticamente è corretta), salvando l'esito in una variabile chiamata $result (si può fare, ma trattandosi di un inserimento e non di una selezione sarà un booleano e non un riferimento a record estratti da una tabella)
    - stampi in ogni caso che il risultato è stato inserito correttamente, quando sarebbe più corretta una cosa del genere:
    Codice PHP:
    if ($result)
    echo (
    'Risultato inserito correttamente!');
    else
    echo (
    'Risultato non inserito...');
    Hai tante idee, ma parecchio confuse... per prima cosa, in che modo andrebbe inserito il record in "calcetto_risultati" (ovvero: quali campi vanno impostati e con quali valori)?

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  10. #40
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    confuse in quanto di php non capisco nulla, come già ti avevo detto. cerco solo di prendere idee da ciò che ho in mano (tante cose grazie a te) e cerco di usarle dove mi servono...e cercando e ricercando su google ho trovato mille casi diversi che hanno messo ancor piùà confusione su sti cavolo di radio button...

    comunque, io inserisco Data, Nome della squadra A, Nome della squadra B, Goals della squadra A e goals della squadra B...

    poi mi serviva recuperare dei dati su vittorie pareggi e sconfitte, un po' li ho recuperati tramite operazione nelle query, come ad esempio il numero di Vittorie calcolando quando Goals1>Goals2, ecc...

    però non avrei come calcolare ad esempio la percentuale di vittorie (Vittorie/Partite totali). Quindi ho deciso di creare 3 campi con vittorie, pareggi e sconfitte e inserire il alore con dei radio button.

    Modulo.php
    Codice 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>
    <
    tr>
    <
    td width="20%" align="center">&nbsp;</td>
    <
    td width="20%" align="center">Vittoria<input type="radio" value="Vittoria" name="R1"></td>
    <
    td width="20%" align="center">Pareggio<input type="radio" value="Pareggio" name="R1"></td>
    <
    td width="20%" align="center">Sconfitta<input type="radio" value="Sconfitta" name="R1"></td>
    <
    td width="20%" align="center"></td>
    </
    tr>
    </
    table>
    <
    INPUT TYPE="submit" VALUE="Inserisci"></FORM>
    inserisci.php
    Codice PHP:
    <? $conn=mysql_connect("localhost","fantagalla");
    if (!
    $conn){
    echo (
    "Errore durante la connessione a mysql!");
    exit();
    }
    $db_name="my_fantagalla";
    mysql_select_db($db_name,$conn);

    $query="INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2) VALUES ('{$_POST['data']}', '{$_POST['squadra1']}', '{$_POST['squadra2']}','{$_POST['goals1']}','{$_POST['goals2']}')";
    $result=mysql_query($query, $conn);

    echo(
    "Risultato aggiunto correttamente");
    mysql_close($conn);
    ?>
    qua manca la parte per inserire il valore dei radio button..ho provato seguendo il caso che mi avevi risolto per l'altro script ma non riesco a trovare solo ciò che mi serve

    Oppure sarebbe possibile inserire dopo la query di inserimento di data, squadre e goals, un'altra query che fa si che se i goals1>goals 2 inserisce automaticamente il valore 1 nella colonna delle vittorie, se goals1=goals2 nei pareggi e se goals1<goals2 nelle sconfitte...
    Ultima modifica di FantaGalla : 14-12-2006 alle ore 14.43.49

  11. #41
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    comunque, io inserisco Data, Nome della squadra A, Nome della squadra B, Goals della squadra A e goals della squadra B...
    Per mettere questi dati è sufficiente proprio il codice che hai riportato tu, né più né meno (a parte il fatto che non dovresti dare per scontato che una query così semplice finisca correttamente, come ti ho detto sopra)
    Citazione Originalmente inviato da FantaGalla
    poi mi serviva recuperare dei dati su vittorie pareggi e sconfitte, un po' li ho recuperati tramite operazione nelle query, come ad esempio il numero di Vittorie calcolando quando Goals1>Goals2, ecc...

    però non avrei come calcolare ad esempio la percentuale di vittorie (Vittorie/Partite totali). Quindi ho deciso di creare 3 campi con vittorie, pareggi e sconfitte e inserire il alore con dei radio button.
    [omissis]
    qua manca la parte per inserire il valore dei radio button..ho provato seguendo il caso che mi avevi risolto per l'altro script ma non riesco a trovare solo ciò che mi serve
    Se il database è lo stesso dell'altra volta, questi dati li hai già nell'altra tabella: puoi calcolare la percentuale di vittorie calcolando, per ogni riga, Vittorie / (Vittorie + Pareggi + Sconfitte) * 100, in codice:
    Codice:
    SELECT ..., Vittorie / (Vittorie + Pareggi + Sconfitte) * 100 AS RatioVittorie
    In modo del tutto analogo puoi scrivere anche un RatioPareggi e RatioSconfitte...

    Citazione Originalmente inviato da FantaGalla
    Oppure sarebbe possibile inserire dopo la query di inserimento di data, squadre e goals, un'altra query che fa si che se i goals1>goals 2 inserisce automaticamente il valore 1 nella colonna delle vittorie, se goals1=goals2 nei pareggi e se goals1<goals2 nelle sconfitte...
    Puoi farlo con un meccanismo simile alla pagina di prima, data però la simmetria della cosa (una vittoria per una squadra comporta la sconfitta dell'altra...) la pagina si complica decisamente:
    Codice 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";

    // 2. Costruisce le query di inserimento: si suppone che tu passi i giocatori via ID
    $query = "INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2) VALUES ";
    $query2 = "INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUES ";
    $is_set = false;
    while (isset (
    $_POST['data' . ++$i]) && $_POST['data'] != NULL)
    {
    $is_set = true;
    $data = $_POST['data' . $i];
    $sq1 = $_POST['squadra1_' . $i];
    $sq2 = $_POST['squadra2_' . $i];
    $g1 = $_POST['goals1_' . $i];
    $g2 = $_POST['goals2_' . $i];
    $query .= "('$data', $sq1, $sq2, $g1, $g2), ";
    if (
    $g1 > $g2)
    // la squadra 1 ha vinto, la squadra 2 ha perso
    $query2 .= "($sq1, $g1, 1, 0, 0), ($sq2, $g2, 0, 0, 1), ";
    else if (
    $g1 < $g2)
    // la squadra 1 ha perso, la squadra 2 ha vinto
    $query2 .= "($sq1, $g1, 0, 0, 1), ($sq2, $g2, 1, 0, 0), ";
    else
    // resta solo il pareggio...
    $query2 .= "($sq1, $g1, 0, 1, 0), ($sq2, $g2, 0, 1, 0), ";
    }
    // Se non hai inserito niente, non ha senso effettuare l'aggiornamento, salta direttamente alla distruzione della tabella temporanea
    if ($is_set)
    {

    // ... quindi le esegue (in botta unica, così non devi fare una query per utente!)
    $query = substr ($query, 0, strlen ($query) - 2);
    $query2 = substr ($query, 0, strlen ($query2) - 2);
    if (
    mysql_query ($query, $db) && mysql_query ($query2, $db))
    echo (
    'Inserimento dati avvenuto!');
    else
    echo (
    'Inserimento non riuscito...');

    // 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";

    }
    // fine del "salto", se eseguito

    // 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 :-(");
    ?>
    Per realizzare il modulo, ecco un'idea di partenza (non ho previsto l'inserimento di nuovi giocatori, il numero di partite contemporanee è pari al massimo alla metà dei giocatori in difetto):
    Codice PHP:
    <?php
    $query
    = "SELECT * FROM calcetto";
    $result = mysql_query ($query, $db);
    $nr_partite = floor (mysql_num_rows ($result) / 2);
    $select_code = '';
    while (
    $line = mysql_fetch_array ($result))
    {
    $select_code .= '<option value="' . $line['id'] . '">' . $line['cognome'] . ' ' . $line['nome'] . '</option>';
    }
    echo (
    '<tr>');
    echo (
    '<th>Data</th>');
    echo (
    '<th>Squadra1</th>');
    echo (
    '<th>Squadra2</th>');
    echo (
    '<th>Goals1</th>');
    echo (
    '<th>Goals2</th>');
    echo (
    '</tr>');
    for (
    $i = 1; $i < $nr_partite; $i++)
    {
    echo (
    '<tr>');
    echo (
    '<td><input type="text" name="data' . $i . '" /></td>');
    echo (
    '<td><select name="squadra1_' . $i '">' . $select_code . '</select></td>');
    echo (
    '<td><select name="squadra2_' . $i '">' . $select_code . '</select></td>');
    echo (
    '<td><input type="text" name="goals1_' . $i . '" /></td>');
    echo (
    '<td><input type="text" name="goals2_' . $i . '" /></td>');
    echo (
    '</tr>');
    }
    ?>
    Stammi bene...

    P.S. Se la cosa funziona, mi auguro che ci sia qualche link/visitina al mio sito...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  12. #42
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    il tuo codice da questo errore:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /membri2/fantagalla/home/calcetto/modulo_risultati.php on line 21


    per quanto riguarda la percentuale di vittorie, io ho già come calcolarla...
    il mio unico problema è poter tramite quei radio button assegnare il valore vittoria, pareggio o sconfitta visto che ho questi campi nella tabella del database

    oppure poterli inserire in automatico a seconda del confronto tra i goals1 e goals2

    cioè, se goals1>goals2 allora assegna il valore 1 nella colonna vittorie..

    questo solo sarebbe da tradurre in codice e a ggiungerlo al codice che ti avevo postato, ma non so come fare...
    Ultima modifica di FantaGalla : 15-12-2006 alle ore 16.59.03

  13. #43
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    il tuo codice da questo errore:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /membri2/fantagalla/home/calcetto/modulo_risultati.php on line 21
    Potresti indicare qual è la linea 21? Da quanto postato sopra non riesco a capirlo... comunque quell'errore di solito è dovuto ad un errato annidamento di virgolette (continuando ad aprire e chiudere virgolette di diverso tipo è facile incasinarsi).
    Citazione Originalmente inviato da FantaGalla
    il mio unico problema è poter tramite quei radio button assegnare il valore vittoria, pareggio o sconfitta visto che ho questi campi nella tabella del database

    oppure poterli inserire in automatico a seconda del confronto tra i goals1 e goals2

    cioè, se goals1>goals2 allora assegna il valore 1 nella colonna vittorie..

    questo solo sarebbe da tradurre in codice e a ggiungerlo al codice che ti avevo postato, ma non so come fare...
    Questo lavoro "automatico" dovrebbe essere svolto esattamente dal codice sopra (il primo che ti ho riportato), anzi, rendendo persino inutile l'aggiornamento via pulsanti radio. Però, logicamente, prima di testarlo bisogna sistemare l'errore al modulo...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  14. #44
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    Codice PHP:
    echo ('<td><select name="squadra1_' . $i '">' . $select_code . '</select></td>');
    questa è la riga 21

    e comunque il database è diverso...

    qui si chiama calcetto_risultati ed è composto da:

    id, data, squadra1, squadra2, goals1, goals2, vittorie, pareggi, sconfitte
    Ultima modifica di FantaGalla : 16-12-2006 alle ore 15.34.09

  15. #45
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito Miiiiiii.. che casino

    Questa volta mi sono dimenticato un punto, sistema allo stesso modo anche la riga 22 (che è il copia-incolla della 21 :-D)
    Codice:
    echo ('<td><select name="squadra1_' . $i . '">' . $select_code . '</select></td>');
    Quanto al database, mi sto incasinando io (probabile...) o l'hai cambiato di sana pianta? Io l'avevo pensato con queste due tabelle (e così dovrebbe funzionare l'inserimento):
    - calcetto (id, cognome, nome, goals, vittorie, pareggi, sconfitte)
    - calcetto_risultati (id_partita, id_squadra1, id_squadra2, data, goals1, goals2)

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  16. #46
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    la tabella calcetto non c'entra con questo modulo e questo inserisci, ho fatto 2 moduli e 2 inserisci per i calciatori e per i risultati

    la tabella nuova ha questi valori:

    - calcetto_risultati (id, data, squadra1, squadra2, goals1, goals2, vittorie, pareggi, sconfitte)

    io i nomi delle squadre li inserisco di volta in volta in un campo text, idem la data e i goals....

    vittorie, pareggi e sconfitte sono campi che o devo ricavare (megio) oppure li inserisco coi radio button...

    e comunque non funziona lo stesso il codice, invece di darmi i campi dove inserire i valori mi da in stampa:
    DataSquadra1Squadra2Goals1Goals2

    e comunque a me le statistiche su vittorie, pareggi e sconfitte interessano solo per la squadra1
    Ultima modifica di FantaGalla : 16-12-2006 alle ore 21.29.30

  17. #47
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da FantaGalla
    la tabella calcetto non c'entra con questo modulo e questo inserisci, ho fatto 2 moduli e 2 inserisci per i calciatori e per i risultati

    la tabella nuova ha questi valori:

    - calcetto_risultati (id, data, squadra1, squadra2, goals1, goals2, vittorie, pareggi, sconfitte)

    io i nomi delle squadre li inserisco di volta in volta in un campo text, idem la data e i goals....

    vittorie, pareggi e sconfitte sono campi che o devo ricavare (megio) oppure li inserisco coi radio button...
    ...
    e comunque a me le statistiche su vittorie, pareggi e sconfitte interessano solo per la squadra1
    Vediamo un po' se ho capito meglio adesso:
    La tabella "calcetto" del post #6 e successive modifiche ha questi campi con i seguenti significati:
    - id del giocatore
    - cognome del giocatore
    - nome del giocatore
    - goals segnati
    - numero di vittorie
    - numero di pareggi
    - numero di sconfitte
    La tabella "calcetto_risultati" che mi descrivi dovrebbe avere:
    - id della partita
    - data della partita
    - nome della prima squadra
    - nome della seconda squadra
    - goal segnati dalla prima squadra
    - goal segnati dalla seconda squadra
    - numero di vittorie della prima squadra
    - numero di pareggi della prima squadra
    - numero di sconfitte della prima squadra
    Come ti ho detto più volte, in un database (che è costituito da ENTRAMBE queste tabelle, non è che tabella sia sinonimo di database) è buona norma non memorizzare dei campi che:
    - possono essere facilmente ricavati da altri, un esempio erano i campi "presenze" e "media goal" che abbiamo eliminato più sopra
    - possono essere errati o duplicati se inseriti: nel tuo caso sarebbe meglio inserire gli ID delle squadre e non i loro nomi in "calcetto_risultati", per sapere i nomi puoi sempre "unire" le due tabelle (facendo appunto quella che è chiamata join). Si può fare qualche piccola eccezione se un dato corrisponde al conteggio di record in altre tabelle, come ad esempio i campi "vittorie", "pareggi" e "sconfitte" della prima tabella (che potrebbero essere ricavati interrogando "calcetto_risultati" e contando le righe uscite)
    - costringono ad effettuare aggiornamenti ripetuti di dati per mantenerli coerenti: nel tuo caso i campi "vittorie", "pareggi" e "sconfitte" della seconda tabella creano proprio questo problema, inserendo una nuova partita dovresti modificare tutte le occorrenze dove compare lo stesso giocatore come "squadra1".
    Per questo, questi ultimi 3 campi non hanno alcun senso... li trovi già stampati (e aggiornati meglio) nella tabella "calcetto"...
    Citazione Originalmente inviato da FantaGalla
    e comunque non funziona lo stesso il codice, invece di darmi i campi dove inserire i valori mi da in stampa:
    DataSquadra1Squadra2Goals1Goals2
    Hai messo anche i tag mancanti? Mancano i tag di apertura della tabella, quelli per gestire il form e il pulsante submit... speravo riuscissi a metterli da solo...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  18. #48
    L'avatar di FantaGalla
    FantaGalla non è connesso Utente
    Data registrazione
    01-07-2003
    Messaggi
    245

    Predefinito

    hai purtroppo sperato male...
    sono in alto mare e fidati che d prove ne ho fatte parecchie...

    EDIT: non hai quindfi nuove soluzioni?
    spiegami solo come creare un ciclo che mi permetta di dire se g1>g2 allora...
    se g1=g2 allora, ecc
    almeno capirci qualcosa


    FunCool: Non scrivere due messaggi consecutivi, utilizza il tasto Edita.
    Ultima modifica di funcool : 20-12-2006 alle ore 10.58.12

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •