• User

    modificare una riga della tabella visualizzata

    Ho realizzato uan query che mi stampa a video i risultati di una tabella.
    Ora devo fare che ad ogni riga della tabella che visualizzo metto un pulsante modifica , per poter effettuare effettivamente la modifica di quel campo 😞
    Come posso fare? come faccio a richiamare e/o a poter modificare i campi di quella riga?

    [PHP]<?php
    include("richiama connessione al database");

    $sql=mysql_query("SELECT * FROM tabella1 ")
    
    
       //titoli della tabela da stampare
      echo " <form>  <table border=0 align=center cellspacing=6  cellpadding=1>
                        <tr align=center>
                            <td>COGNOME</td>
                            <td>NOME</td>
    
                        </tr>
            ";
    
    
     // assegna all'array i valori dei campi, in base all'ordine dei campi del db
        while ($riga = mysql_fetch_array($sql, MYSQL_NUM)){
                   echo "<tr align=center><td>$riga[0]<td>$riga[1]<td>
                        <input type="submit" name="Submit" value="Modifica" /></td></tr>";
                }
    
        echo "</table> </form>";
    
    
    
        mysql_free_result($sql);
    
    
    
       ?>[/PHP]

  • Consiglio Direttivo

    Dovrai creare un form per ogni risultato e memorizzare in un hidden data l'id o comunque un dato univoco , cliccando su "modifica" ti recuperi questo dato e passi alla variazione 😉


  • User

    Oh!caspiterina ....un casino, devo fare un form action per ogni riga?

    Ti ringrazio per avermi risposto , ti chiedo troppo se potresti farmi un esempio.
    Grazie


  • Consiglio Direttivo

    Beh, un casino non è, li fa il php i Form 😄

    [php]while ($riga = mysql_fetch_array($sql, MYSQL_NUM)){
    echo "<tr align=center><td>".$riga['campo']."</td>
    <td><form action="modify.php" method="POST">
    <input type="hidden" name="id" value="".$riga['id']."" />
    <input type="submit" name="submit" value="Modifica" /></td></tr>";
    }[/php]facendo così ti recuperi l'id della riga e poi elabori come/cosa modificare 😉


  • User

    scusa ma per te ['id'] e ['campo'] sono i nome del campi del DB giusto? perchè io ho messo i campi del mio db ma mi da il seguente Notice:

    Notice: Undefined index: id in C:\Programmi\EasyPHP 2.0b1\www\mod.php on line 6

    Notice: Undefined index: nomecampo in C:\Programmi\EasyPHP 2.0b1\www\mod.php on line 8


  • Consiglio Direttivo

    si al posto di id e campo devi mettere i nomi campo della tua tabella1 😉

    Correggo 😄

    dato che usi MYSQL_NUM metti $riga[0], $riga[1]

    Scusa la svista, non ci avevo fatto caso 😉


  • User

    Grazie a te per la pazienza.
    Se ho capito bene ho aggiunto alla riga o glia ltri campi che mi visulaizza e con il form mi richiama il file modifica.php e ci sto , ora ho 2 domande :

    1. nel file modifica cosa metto il campo id e gli altri campi m giusto ma come sono collegati,puoi fare un piccolo esempio 😢
    2. nel caso non so quanti campi sono o meglio voglio rendere il file utilizzabile per diverse tabelle e quindi che hanno diversi file vorrei evitare di specificare riga[0]....riga[1] come nel caso seguente caso :

    [PHP] $sql=mysql_query('select * from members');

       while ($riga = mysql_fetch_array($sql, MYSQL_NUM)){
    

    echo "<tr align=center><td>".$riga[0].$riga[1].$riga[2]."</td>
    <td><form action="modify.php" method="POST">
    <input type="hidden" name="id" value="".$riga[1]."" />
    <input type="submit" name="submit" value="Modifica" /></td></tr>";
    }
    [/PHP]

    Come posso fare?


  • Consiglio Direttivo

    Beh diventa molto più laborioso, dovresti recuperare il numero di campi di ogni tabella e quindi costruire la pagina di modifica "al caso".
    Per come fare la modifica puoi semplicemente far visualizzare i dati in input box modificare quello che va modificato ed al submit fare un update della tabella legando il tutto sempre all'id 😉


  • User

    Todo claro,
    Grazie sei stato gentilissimo


  • Consiglio Direttivo

    di nulla 😉