Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 57
  1. #1

    modificare contenuti già inseriti in tabella mysql

    ciao a tutti

    ho segutio la 'Guida PHP/MySql pratica' ed imparato a caricare contenuti in un database e poi a cercarli....

    la guida aiuta a creare una tabella con una serie di colonne: id, titolo, testo, data, ecc...

    per completare l'opera vorrei capire come fare a modificare i contenuti già inseriti, ad esempio modificare il titolo della riga 1 o il testo della riga 2, ecc...

    sapete indirizzarmi verso qualche altra guida che tratta l'argomento?
    grazie

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  2. #2

  3. #3
    ...

    ehmm...
    grazie nicola75ss,
    il problema è che il mio livello di conoscenze nn mi permette di scrivere un file che faccia tutte quelle cose descritte nella guida che mi hai indicato...

    immagino che mi occorra collegare 'post' un form ad una pagina tipo 'update.php', ad esempio:
    <form method="post" action="update.php">...

    ma nn so come collegare i campi del form alle celle della tabella, ne come compilare la pagina di update...

    una mano per favore...

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  4. #4
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  5. #5
    Se hai creato una form per inserire dati con una form in un DB, non vedo quale sia la differenza con farne l'aggiornamento.

    Ad ogni modo, ogni input di una form ha due attributi: id e name. Questi due attributi devono contenere il medesimo valore e quella sarà la variabile che passerai mediante la form.

    Per capirci.

    Codice PHP:
    <form method="post" action="update.php" enctype="multipart/form-data">
         <
    input type="text" id="testo" name="testo" value="" />
         <
    hr />
         <
    input type="submit" id="invia" name="invia" value="INVIA" />
    </
    form
    Cosa significa tutto ciò.
    La form contiene un campo di input su singola riga (input type="text") il cui nome di riferimento è testo.
    quando si preme il bottone di SUBMIT, quello che verrà scritto nel campo di TESTO verrà passato alla pagina update.php sfruttando il metodo POST.
    Cosa significa?? Che il contenuto della input verrà "salvato" in una particolare allocazione di memoria del server e lì rimarrà fin quanto la pagina ricevente non vorrà utilizzarlo.

    Per recuperare questa variabile, che è stata salvata in un array speciale chiamato $_POST, si utilizzerà il seguente metodo.

    Codice PHP:
    // pagina update.php
    $testo $_POST['testo'];
    // e poi utilizzata
    $SQL "
    UPDATE nome_tabella
    SET nome_campo = '
    $testo'
    WHERE xxx
    "

    Quindi, si recupera il valore passato dalla form e lo si associa ad una variabile.
    Detta variabile, viene messa nella stringa SQL che verrà data in pasto al comando mysql_query().
    La query, come puoi notare, prevede un riferimento per aggiornare solo un record specifico del DB, altrimenti, tutti i campi nome_campo di tutti i record presenti nella tabella, sarebbero aggiornati in un solo colpo.
    Il riferimento dovrai sceglierlo te in base alle tue esigenze!

    Spero di essere stato chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    grazie mille,
    le idee sono piu chiare...
    ora ti chiedo:
    considerando che la tabella in questione è stata creata con le seguenti caratteristiche
    CREATE TABLE news (id INT (5) UNSIGNED not null AUTO_INCREMENT, titolo VARCHAR (255) not null, testo TEXT not null, data INT (11), autore VARCHAR (50), mail VARCHAR (50), PRIMARY KEY (id))
    ed il form agisce contemporaneamente su ciascuna di esse...

    quale dovrebbe essere la corretta sintassi per la seguente istruzione UPDATE (copio dalla guida su citata) se, ad esempio, con il form volessi modificare la riga 2 della tabella?
    UPDATE [LOW_PRIORITY] [IGNORE] nome_tabella
    SET nome_colonna=espressione [, nome_colonna2=espressione2 ...]
    [WHERE condizioni]
    [ORDER BY ...]
    [LIMIT numero_righe]
    :master:
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  7. #7
    Posta anche la form.
    Sennò non so quali variabili hai usato.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    il form che inserisce i contenuti nel db è questo:

    [QUOTE<form method="post" action="save.php">
    Titolo:
    <input type="text" size="40" name="titolo" />

    Data:
    <select name="giorno">
    <?
    for ($i=1; $i<=31; $i++)
    echo "<option value=\"$i\">$i</option>";
    ?>
    </select>

    <select name="mese">
    <option value="1">Gennaio</option>
    <option value="2">Febbraio</option>
    <option value="3">Marzo</option>
    <option value="4">Aprile</option>
    <option value="5">Maggio</option>
    <option value="6">Giugno</option>
    <option value="7">Luglio</option>
    <option value="8">Agosto</option>
    <option value="9">Settembre</option>
    <option value="10">Ottobre</option>
    <option value="11">Novembre</option>
    <option value="12">Dicembre</option>
    </select>

    <select name="anno">
    <option value="2008">2008</option>
    <option value="2009">2009</option>
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option value="2015">2015</option>
    <option value="2016">2016</option>
    <option value="2017">2017</option>
    </select>

    Autore:
    <input type="text" size="40" name="autore" />

    E-mail:
    <input type="text" size="40" name="mail" />

    Testo:
    <textarea cols="60" rows="40" name="testo"></textarea>

    <input type="submit" value="Invia" />
    </form>
    [/QUOTE]

    :master:
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  9. #9

    PREMESSA: Non mi piace fare script per chi vuole la pappa pronta

    Fatto salvo quanto scritto nel titolo di questo post, e sperando davvero che a te serva davvero una mano per imparare e non solo scroccare codice, passo subito a dire che questa a me sembra una form di inserimento di dati in un DB piuttosto che di aggiornamento.

    Fatta questa doverosa premessa, ti mostro il meccanismo per effettuare una query.

    Codice PHP:
    <?php   
    /*
    OMETTO IL CODICE PER LA CONNESSIONE AL DB
    */ 
    $titolo $_POST['titolo'];
    $giorno $_POST['giorno'];
    $mese $_POST['mese'];
    $anno $_POST['anno'];
    $autore $_POST['autore'];
    $mail $_POST['mail'];
    $testo $_POST['testo'];

    $data mktime(000$mese$giorno$anno);

    $sql "
    INSERT INTO news 
    (titolo, testo, data, autore, email)
    VALUES ('
    $titolo', '$testo', $data, '$autore', '$mail')
    "
    ;
    ?>
    Devo fare qualche osservazione.
    1. Non c'è alcun filtraggio sugli input, per cui questo metodo, per quanto funzionante è sicuramente preda di errori e/o hacking. Indubbiamente, a te serve che funzioni prima di tutto per cui va bene, ma ti avverto: va migliorato ed implementato
    2. Nel DB hai messo la colonna DATA come in INTERO a 11 bit.
    Questo mi fa supporre che metti il timestamp della data, ma sappi che sarebbe il caso che la colonna relativa fosse formattata come timestamp
    3. Come dicevo all'inizio, la form come l'hai passata tu mi sembra più una per l'inserimento di articoli nel DB, piuttosto che per la modifica.
    Penso proprio che devi studiarti per bene il funzionamento di un DB perché eviti di scrivere query di UPDATE quando invece ne serve una di INSERT e/o viceversa.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    grazie alcio74 per il disturbo...
    ti spiego:
    - gli script a cui faccio riferimento sono tutti nella 'Guida PHP/MySql pratica come ho scritto nel primo post.

    - il form che ho postato INSERISCE i contenuti nel db e li salva nel file save.php, come ho premesso nell'ultimo post.

    - nel file save.php (che leggi qui) troverai tutto, la connessione al db, la query e i filtraggi...

    - ho postato il codice di quel form perchè pensavo che fosse un punto di partenza per arrivare ad ottenere un'altro form che invece di inserire contenuti nuovi, si limitasse ad aggiornare quelli esistenti... con questo form invece posso solo aggiungere altre righe nella tabella, non posso modificare quelle già esistenti...

    ora:

    - mi sembra di capire che il form di aggiornamento deve 'comunicare' con un nuovo file (ad esempio 'update.php') in questo modo: ...method="post" action="update.php"...

    - il file update.php deve contenere un'istruzione UPDATE anzichè INSERT e questa dovrebbe essere la sintassi che ho trovato nell'altra guida (modifica-e-cancellazione-dei-dati) che mi ha postato nicola75ss:
    UPDATE [LOW_PRIORITY] [IGNORE] nome_tabella
    SET nome_colonna=espressione [, nome_colonna2=espressione2 ...]
    [WHERE condizioni]
    [ORDER BY ...]
    [LIMIT numero_righe]
    - da principiante assoluta, chiedevo un mano nella definizione di questa sintassi... l'unica cosa che riesco a capire per il momento è che a nome_colonna devo sostituire ad esempio 'titolo' o 'testo', o almeno credo... ma se così fosse già mi sorge un'altra domanda: devo creare un file di update per ogni cella da modificare???


    ecco, tutto (?) qui...
    grazie per la pazienza,
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.