Visualizzazione risultati 1 fino 5 di 5

Discussione: Problema inserimento dati nel database

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito Problema inserimento dati nel database

    Ciao ragazzi, ho un problema, io da una pagina passo il numero a quella nel campo CODE di seguito per la creazione dei campi da compilare.

    Codice PHP:
    <?PHP
    // includiamo il file di connessione al database
    include ('connessione/database_3.php');

    mysql_select_db("$db_name2")or die("cannot select DB");

    // Recupero i record per la pagina corrente...
    $sql = "SELECT volontari FROM attivita WHERE codice_attivita='$codice_attivita' "; //volontari e' il numero
    $result = mysql_query($sql);
    $array = mysql_fetch_array($result);


    $riga = $array['volontari'];


    echo
    '<form action="gest_inserimento_attivita2.php?inviodati2=ok&numero_volontari='.$riga.'&codice_attivita='.$codice_attivita.'" method="POST">';

    echo
    '<table width="505" border="1">';

    for(
    $i=0;$i<$riga;$i++){
    echo
    '<tr>
    <td width="306"><select name="nome_volontari'
    .$i.'">
    <option></option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    </select></td>

    <td width="189"><input name="ore_volontari'
    .$i.'" type="text" size="5" /></td>
    </tr>'
    ;
    }

    echo
    '</table>
    <input name="" type="submit" value="Inserisci" class="art-button"></form>'
    ;
    ?>
    e questa è l'altra porzione del codice, che dovrebbe inserire i dati nel database. il problema è che nel database mi inserisce i valori da 0 al numero che specifico di campi da compilare.
    Codice PHP:
    <?php
    // includiamo il file di connessione al database
    include ('connessione/database_3.php');
    mysql_select_db("$db_name2")or die("cannot select DB");

    // attraverso un if controlliamo che il form sia stato inviato
    if ( $_GET['inviodati2'] == "ok" ) {

    $numero_volontari = $_GET['numero_volontari'];
    $codice_attivita = $_GET['codice_attivita'];


    for(
    $i=0;$i<$numero_volontari;$i++){
    $codice_fiscale = $_POST['codice_fiscale'];
    $ore_intervento = $_POST['ore_intervento'];

    $codice_fiscale = $codice_fiscale.$i;
    $ore_intervento = $ore_intervento.$i;

    //inserisco i dati
    mysql_query("INSERT INTO personale_attivita
    (id, codice_attivita, codice_fiscale, codifica_attivita, ore_intervento)
    VALUES
    ('', '
    $codice_attivita', '$codice_fiscale', '$codifica_attivita', '$ore_intervento')") OR DIE(mysql_error());

    }


    // messaggio da far visualizzare all'utente finale
    echo "<blockquote><div style=\"color:#093\"><strong>Attivita' inserita con successo!</strong></div></blockquote>";

    } else {
    echo
    "<blockquote><div style=\"color:#F00\"><strong>I campi indicati sono obbligatori.</strong></div></blockquote>";
    }


    ?>
    Quindi il mio problema immagina che sia nei cicli for. come posso risolvere?

  2. #2
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    Codice:
    for($i=0;$i<$riga;$i++){ 
    echo'<tr> 
    <td width="306"><select name="nome_volontari'.$i.'"> 
        <option></option> 
    <option value="A">A</option> 
    <option value="B">B</option> 
    <option value="C">C</option> 
    </select></td> 
    
    <td width="189"><input name="ore_volontari'.$i.'" type="text" size="5" /></td> 
    </tr>';
    Cioè se ho capito quello che hai fatto questo ciclo, ammesso che funzioni ti stampa N colonne con dentro una serie, teoricamente infinite di select con ognuna tre campi opzionali A, B, C?
    giusto?
    Tower Defense giochi in Flash

  3. #3
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    stampa delle righe N con il select e l'input dopo ogni dato dovrebbe essere inserito nel database con un codice evento unico per tutti gli N record

  4. #4
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    Allora vediamo perché non è che ti spieghi molto, comunque...
    Intanto potresti semplificare il codice perché così com'è è incomprensibile in certe parti, quindi ti consiglio di semplificare, per esempio nel secondo ciclo:
    Codice PHP:
    for($i=0;$i<$numero_volontari;$i++){
    $codice_fiscale = $_POST['codice_fiscale'].$i;
    $ore_intervento = $_POST['ore_intervento'].$i;

    segue query!
    ed elimini un passaggio inutile, ma questo dovrebbe funzionare comunque come prima è solo più comprensibile.
    Nella prima parte di codice invece ci sono delle cose che non capisco perché non so come sono memorizzati i valori nel DB.
    Se ho compreso bene il tuo programma, RIGA dovrebbe inviarti il numero di volontari presenti, ma ho paura che passando $array non contenga affatto tutto il database ma solo il valore del primo (o l'ultimo) del campo volontari compresi in tutti i record, hai provato a vedere il codice risultante per vedere se ti restituisce un valore sensato?
    Se invece devi semplicemente vedere quanti sono i record presenti fai il count() di $array prima di passarlo con la GET.
    Codice PHP:
    $array = mysql_fetch_array($result, MYSQL_ASSOC);
    $riga = count($array['volontari']);
    In ogni caso prova a mettere i risultati delle variabile dentro a qualche var_dump() per vedere cosa ne esce e se hanno valori significativi.
    Poi dicci :)
    Tower Defense giochi in Flash

  5. #5
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    grazie per l'aiuto, ma alla fine ho deciso di cambiare il tutto, ovvero senza complicarmi la vita con il dover inserire dei cicli o degli array, si aggiunge una cosa alla volta...

    comunque se ti va di buttarmi giù due righe per capire il funzionamento ne sarei felice...
    ovvero per N campi con lo stesso nome, come faccio a creare la query di inserimento dati nel database?

Regole di scrittura

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