Visualizzazione risultati 1 fino 6 di 6

Discussione: Aiuto per form inserimento dati

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

    Predefinito Aiuto per form inserimento dati

    ho questa pagina col form di inserimento campi:

    Codice PHP:
    <FORM METHOD="post" ACTION="inserisci_portieri.php">
    <table border="1" width="400px" style="border-collapse: collapse" id="table1">
    <tr>
    <td width="40%" align="center"><b>COGNOME</b></td>
    <td width="40%" align="center"><b>NOME</b></td>
    <td width="20%" align="center"><b>GOALS SUBITI</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="40%">' . $line['cognome'] . '</td>';
    echo
    '<td width="40%">' . $line['nome'] . '</td>';
    echo
    '<td width="20%" align="center"> <INPUT TYPE="text" NAME="subiti' . $i . '" size="5"></td>';
    echo
    '</tr>';
    }
    $new_player = 0; // qui il numero di nuovi giocatori
    for ($j = 1; $j <= $new_player; $j++)
    {
    $i++;
    echo
    '<td width="40%"><input type="text" name="cognome' . $j . '"></td>';
    echo
    '<td width="40%"><input type="text" name="nome' . $j . '"></td>';
    echo
    '<td width="20%" align="center"> <INPUT TYPE="text" NAME="subiti' . $i . '" size="5"></td>';
    echo
    '</tr>';
    }
    ?>
    </table> <INPUT TYPE="submit" VALUE="Inserisci"> </p> </FORM>
    e questa che invia i dati al database:

    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_portieri (
    id INT (5) UNSIGNED not null,
    subiti INT (5) UNSIGNED not null)"
    ;

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

    // 2. Inizia la costruzione della query di inserimento...
    $query = "INSERT INTO tmp_portieri (id, subiti) VALUES ";
    $i = 0;
    while (isset (
    $_POST['subiti' . ++$i]))
    {
    if (
    $_POST['subiti' . $i] == '' || $_POST['subiti' . $i] == NULL)
    $values = '(' . $i . ', 0), ';
    else
    $values = '(' . $i . ', ' . $_POST['subiti' . $i] . '), ';
    $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_portieri
    SET calcetto.subiti = calcetto.subiti + tmp_portieri.subiti
    WHERE calcetto.id = tmp_portieri.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_portieri";

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

    vorrei aggiungere un altro campo nel form che mi permetta di inserire il valore 1 coem presenza (meglio se fosse fatto con un pallino da spuntare che in posizioone di default e su 0 ma posso selezionare il valore 1 se il portiere è presente)
    nel database ho già il campo 'presenza'

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per il form puoi fare così:
    Codice PHP:
    <FORM METHOD="post" ACTION="inserisci_portieri.php">
    <table border="1" width="400px" style="border-collapse: collapse" id="table1">
    <tr>
    <td width="35%" align="center"><b>COGNOME</b></td>
    <td width="35%" align="center"><b>NOME</b></td>
    <td width="20%" align="center"><b>GOALS SUBITI</b></td>
    <td width="10%" align="center"><b>PRESENZA</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="35%">' . $line['cognome'] . '</td>';
    echo
    '<td width="35%">' . $line['nome'] . '</td>';
    echo
    '<td width="20%" align="center"> <INPUT TYPE="text" NAME="subiti' . $i . '" size="5"></td>';
    echo
    '<td width="10%">Si<input type="radio" name="presenza' . $i .'" value="1" /> No<input type="radio" name="presenza' . $i .'" value="0" checked="checked" /></td>';
    echo
    '</tr>';
    }
    $new_player = 0; // qui il numero di nuovi giocatori
    for ($j = 1; $j <= $new_player; $j++)
    {
    $i++;
    echo
    '<td width="35%"><input type="text" name="cognome' . $j . '"></td>';
    echo
    '<td width="35%"><input type="text" name="nome' . $j . '"></td>';
    echo
    '<td width="20%" align="center"> <INPUT TYPE="text" NAME="subiti' . $i . '" size="5"></td>';
    echo
    '<td width="10%">Si<input type="radio" name="presenza' . $i .'" value="1" /> No<input type="radio" name="presenza' . $i .'" value="0" checked="checked" /></td>';
    echo
    '</tr>';
    }
    mysql_close($db);
    ?>
    </table> <INPUT TYPE="submit" VALUE="Inserisci"> </p> </FORM>
    e per aggiornare il db:
    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_portieri (
    id INT (5) UNSIGNED not null,
    subiti INT (5) UNSIGNED not null,
    presenza binary(1) NOT NULL)"
    ;

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

    // 2. Inizia la costruzione della query di inserimento...
    $query = "INSERT INTO tmp_portieri (id, subiti, presenza) VALUES ";
    $i = 0;
    while (isset (
    $_POST['subiti' . ++$i]) && isset ($_POST['presenza' . $i]))
    {
    if (
    $_POST['subiti' . $i] == '' || $_POST['subiti' . $i] == NULL)
    $values = '(\'' . $i . '\', 0, \''.mysql_real_escape_string($_POST['presenza' . $i]).'\'), ';
    else
    $values = '(\'' . $i . '\', \'' . mysql_real_escape_string($_POST['subiti' . $i]) . '\', \'' . mysql_real_escape_string($_POST['presenza' . $i]) . '\'), ';
    $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_portieri
    SET calcetto.subiti = calcetto.subiti + tmp_portieri.subiti, calcetto.presenza = tmp_portieri.presenza
    WHERE calcetto.id = tmp_portieri.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_portieri";

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

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

    Predefinito

    PROBLEMA:

    così mi non mi somma la presenza segnalata come portiere a quelle già mmorizzate nel database

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ma nel database vuoi salvato il numero di presenze?

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

    Predefinito

    ho risolto, era qui da modificare così:

    calcetto.portiere = calcetto.portiere + tmp_portieri.portiere

  6. #6
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Forse volevi dire calcetto.presenza = calcetto.presenza + tmp_portieri.presenza

Regole di scrittura

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