+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

UPDATE da caselle di testo riempite con ciclo while.

  1. #1
    pesmons non è in linea Novello
    Salve a tutti, ho una TABLE con varie righe generate con ciclo WHILE con delle input text riempite con i dati attuali del db che dovrei modificare e rispedire tutto al db con UPDATE, come posso fare?

    vi posto il codice del caricamento della pagina da aggiornare. Grazie mille.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title></title>
        </head>
        <body>
    <?php
    require "config.php";
    require "connect.php";
    
    $query = "SELECT candidato, seggio1, seggio2, seggio3, seggio4, seggio5, seggio6 FROM lista1 ORDER BY `id_candidato`";
    $result= mysql_query($query);
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }
    echo '
    <table border = "1">
            <tr>
                <th>Candidati</th>
                <th width=10>Seggio 1</th>
                <th width=10>Seggio 2</th>
                <th width=10>Seggio 3</th>
                <th width=10>Seggio 4</th>
                <th width=10>Seggio 5</th>
                <th width=10>Seggio 6</th>
            </tr>';
    while ($row = mysql_fetch_array($result)) {
        $candidato = $row['candidato'];
        $seggio1 = $row['seggio1'];
        $seggio2 = $row['seggio2'];
        $seggio3 = $row['seggio3'];
        $seggio4 = $row['seggio4'];
        $seggio5 = $row['seggio5'];
        $seggio6 = $row['seggio6'];
        echo "<tr>
                    <td>$candidato</td>
                    <td><input type=text size=8 name=seggio1 value=$seggio1></td>
                    <td><input type=text size=8 name=seggio2 value=$seggio2></td>
                    <td><input type=text size=8 name=seggio3 value=$seggio3></td>
                    <td><input type=text size=8 name=seggio4 value=$seggio4></td>
                    <td><input type=text size=8 name=seggio5 value=$seggio5></td>
                    <td><input type=text size=8 name=seggio6 value=$seggio6></td>
              </tr>";
    }
    echo '</table>';
    mysql_free_result($result);
    mysql_close();
    ?>
    </body>
    </html>
    

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    Le input sono fatte apposta per essere parte di una <form>... la form ha un attributo method (in genere post, ma potrebbe essere anche get) e una destinazione.. in genere un bottone effettua la submission della form verso la destinazione (che, se ben congegnata, può essere la stessa pagina php da cui fai il submit).

    I valori che vengono inviati arrivano in $_POST o $_GET a seconda del method indicato. Prendere i valori, controllarli (è sempre bene non dare per scontato che quello che ti arriva in post sia effettivamente quello che vuoi), e farci le operazioni che desideri non è poi complicato.

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

  3. #3
    pesmons non è in linea Novello
    Intanto ti ringrazio per la risposta!
    Comunque i metodi che hai citato li conosco, però in quella tabella ci sono circa una ventina di righe con sei input per riga che si chiamano tutte uguali per colonna, come faccio con i metodi da te citati ad inviarli tutti insieme?

    Grazie di nuovo.

  4. #4
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    Devrei verificare se, come nel caso di checkbox con lo stesso nome, ti arriva in post un array invece di una singola stringa (è più che plausibile).

    Ad ogni modo perché complicare le cose? Basta che formi da php l'attributo name delle varie righe (così come fai per il value) in modo che contenga numeri progressivi, o un prefisso che indichi la riga della tabella a cui si fa riferimento... nel primo caso basta che fuori dalla while dichiari una variabile impostata a zero o uno, la incrementi ad ogni ciclo e la usi come parte dell'attributo name...

    In qualunque caso una richiesta get o post al server per l'operazione di update è necessaria (non puoi prescindere dalla cosa), quindi giocoforza dovrai portarti dietro tutto quanto ti serva ad effettuare l'operazione...

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

  5. #5
    pesmons non è in linea Novello
    Grazie mille, potrebbe essere la soluzione, domani provo e ti faccio sapere.
    Grazie di nuovo e buonanotte!

  6. #6
    pesmons non è in linea Novello
    Ho fatto così e sembra funzionare:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Aggiornamento lista 1</title>
        </head>
        <body>
    <form name="agglista1" action="inslista1.php" method="POST">
    <?php
    require "config.php";
    require "connect.php";
    
    $query = "SELECT candidato, seggio1, seggio2, seggio3, seggio4, seggio5, seggio6 FROM lista1 ORDER BY `id_candidato`";
    $result= mysql_query($query);
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }
    echo '
    <table border = "1">
            <tr>
                <th>Candidati</th>
                <th width=10>Seggio 1</th>
                <th width=10>Seggio 2</th>
                <th width=10>Seggio 3</th>
                <th width=10>Seggio 4</th>
                <th width=10>Seggio 5</th>
                <th width=10>Seggio 6</th>
            </tr>';
    $i=0;
    while ($row = mysql_fetch_array($result)) {
        $i=$i+1;
        $candidato = $row['candidato'];
        $seggio1 = $row['seggio1'];
        $seggio2 = $row['seggio2'];
        $seggio3 = $row['seggio3'];
        $seggio4 = $row['seggio4'];
        $seggio5 = $row['seggio5'];
        $seggio6 = $row['seggio6'];
        echo "<tr>
                    <td>$candidato</td>
                    <td><input type=text size=8 name=seggio1$i value=$seggio1></td>
                    <td><input type=text size=8 name=seggio2$i value=$seggio2></td>
                    <td><input type=text size=8 name=seggio3$i value=$seggio3></td>
                    <td><input type=text size=8 name=seggio4$i value=$seggio4></td>
                    <td><input type=text size=8 name=seggio5$i value=$seggio5></td>
                    <td><input type=text size=8 name=seggio6$i value=$seggio6></td>
              </tr>";
    }
    echo '</table>';
    mysql_free_result($result);
    mysql_close();
    ?>
    <br>
    <input type="submit" name="aggiorna" value="Aggiorna">
    </form>
    </body>
    </html>
    
    Ora il problema è creare un ciclo per accogliere i valori dal metodo $_POST, come potrei fare, non so cosa ci va dopo il WHILE. Grazie!

    <?php
    $i=0;
    while  {
        $i=$i+1;
        $seggio1.$i = $row['seggio1'.$i];
        $seggio2.$i = $row['seggio2'.$i];
        $seggio3.$i = $row['seggio3'.$i];
        $seggio4.$i = $row['seggio4'.$i];
        $seggio5.$i = $row['seggio5'.$i];
        $seggio6.$i = $row['seggio6'.$i];
    }
    

  7. #7
    pesmons non è in linea Novello
    BOTTOMAP, potresti aiutarmi?

  8. #8
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    L'espressione $seggio1.$i = ... è priva di senso. All'interno del codice php non è che puoi formare i nomi delle variabili.

    La cosa migliore in questi casi, per razionalizzare il lavoro e non dover scrivere 20*6=120 assegnamenti è ricorrere ad un array...
    puoi assumere come chiave $i e come valore un array seggio1...seggioN=>valore del campo.
    Per il recupero dei dati ti scorri $_POST, che è un array e appena trovi una chiave in formato seggioXY (la trovi confrontando una sottostringa alla fine), la piazzi nel tuo array di array.
    Dalla chiave seggioXY ottieni la chiave Y del primo array e la chiave seggioX del secondo array, dal valore di tale elemento post ottieni il valore da inserire nel sottoarray.

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

  9. #9
    pesmons non è in linea Novello
    Grazie bottomap, ma per le mie capacità mi sembra un po troppo complicato, non saprei come gestirlo quindi penso di assegnarle manualmente anche se è un lavoraccio ma il copia incolla può darmi una mano.

    Grazie mille!

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Caselle combinate e caselle di testo
    Da jpg288 nel forum Microsoft Access
    Risposte: 12
    Ultimo Post: 17-01-2015, 12:21
  2. Risposte: 1
    Ultimo Post: 10-08-2011, 19:15
  3. Ciclo FOR NEXT per caselle di testo
    Da The Gang nel forum Microsoft Access
    Risposte: 10
    Ultimo Post: 24-11-2010, 08:39
  4. Risposte: 6
    Ultimo Post: 17-05-2010, 11:35
  5. [ACCESSA VBA] Caselle combinate e caselle di testo
    Da paolog555 nel forum Microsoft Access
    Risposte: 19
    Ultimo Post: 05-02-2009, 23:37