Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [MYSQL] duplicare un record

    Ciao a tutti
    ho un problema su un database non fatto da me e difficilmente modificabile nella struttura:
    l'utente deve inserire delle prestazioni effettuate su un paziente, a volte più di una, a volte anche dieci.
    Il problema è che l'utente deve digitare gli stessi dati su tutti i campi, e poi deve modificare solo qualcosina su uno o due campi, ma pochissimo.
    Adesso viene usato un FORM di inserimento normale e funziona bene, ma vorrei poter inserire un collegamento ad una pagina che mi duplichi il record, facendo un copia e incolla di tutti i campi, su un record successivo, ovviamente non dell'ID che è in incremento automatico ed univoco.
    Questo toglierebbe moltissimo lavoro all'utente.
    Secondo voi è possibile?
    Fare....o NON fare...non c'è tentare!
    YODA

  2. #2
    Se i dati che devi duplicare sono presente nel db, puoi leggerli dal li ed inserirli nel forum con un menù a discesa.
    Esempio:

    <select name="nom[]" size="8" multiple>
    <?php
    $query = "select distinct CODICE_DESC, DESCRIZIONE from articoli order by DESCRIZIONE asc";
    $result = mysqli_query($link,$query)or
    die (mysqli_error($link));
    while ($row = mysqli_fetch_row($result))
    {
    echo '<option value="' .$row[0]. '">' .stripslashes($row[1]). "</option>";
    }
    ?>
    </select>

    Spero di aver capito bene ciò che volevi.
    Un uomo è vecchio solo quando i rimpianti, in lui, superano i sogni. A. Einstein

  3. #3

    [MYSQL] duplicare un record

    Purtroppo non mi sembra ciò che veramente mi serve, io ho bisogno che semplicemente cliccando un pulsante (o un Link su un'altra pagina) venga ad esempio presentata una pagina identica al FORM usato in precedenza (con già i dati inseriti) aggiornata con gli stessi dati, di fatto si tratta di fare delle copie fedeli dei dati nei vari campi già inseriti.
    Praticamente l'utente inserisce i dati nel FORM vuoto, invia i dati nel database, poi clicca su un Link che gli presenta un nuovo FORM (magari una pagina diversa) con già gli stessi dati inseriti, che poi modificherà leggermente ed invierà al database come nuovo record.
    Spero di essere stato abbastanza chiaro.
    So di essere difficile nelle richieste!
    Fare....o NON fare...non c'è tentare!
    YODA

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    potresti passare i valori delle variabili dalla pagina che vede l'utente a quella "nuova", che ti servirà ad inserire il nuovo record... In pratica come fai quando crei la pagina di update. Solo che invece della query di update c'è quella di insert...
    sbaglio?

  5. #5

    [MYSQL] duplicare un record

    d'accordo, ma come faccio?
    Se ho capito bene creo una pagina con un FORM identico a quello della pagina che l'utente inserisce la prima volta, ma come posso dire a PHP di copiare tutti i dati già inseriti nel prima FORM, nei campi del FORM della seconda pagina?
    Potreste suggerirmi una bozza di codice?
    Fare....o NON fare...non c'è tentare!
    YODA

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    allora.
    Hai la tua pagina che hai stampato a video. Ha di sicuro un ID... spero...
    Il link alla nuova pagina lo fai passando l'id come parametro. tipo nuovapagina.php?id=$id o qualcosa del genere.
    Nella pagina successiva, che è quella di duplicazione, fai una query dove l'id è il parametro.
    Setti i valori dei campi testo (o textarea...) di questa pagina con i valori presi dal tuo recordset creato.L'utente li cambia come vuole. In ultimo crei la query di inserimento per un nuovo record, e il gioco è fatto...

  7. #7

    [MYSQL] duplicare un record

    diavolo, mi sembra proprio ciò che mi serve,
    ma non ho ben capito come fare, data la mia scarsità con il PHP e MYSQL:
    ho un ID, quindi siamo a posto, ma devo fare due QUERY, giusto?
    penserei di fare così:
    $leggi=mysql_query("SELECT FROM $table WHERE id='$id' ");
    $scrivi=mysql_query("INSERT INTO $table (archivio,cognome,ecc.) VALUES ('$archivio','$cognome',$ecc.')");

    ho fatto giusto?
    Ed il FORM deve essere unico, vero?
    Fare....o NON fare...non c'è tentare!
    YODA

  8. #8

    [MYSQL] duplicare un record

    OK, ho risolto, nel modo più semplice e nello stesso tempo più assurdo!!
    è sufficiente che l'utente inserisca i dati del record, poi lo mandi al database attivando il pulsante submit del form, quindi basta cliccare sul pulsante "indietro" di Explorer e si ritorna allo stesso forma già inserito in precedenza, un nuovo clic su Submit creerà il mio famoso record duplicato (e leggermente modificato).
    Una scemata, se ci si pensa!
    Ma in effetti era proprio quello che cercavo.
    Grazie lo stesso a tutti!
    Fare....o NON fare...non c'è tentare!
    YODA

  9. #9
    mi aggancio a questo post

    devo duplicare un record 4 volte (per poi modificarne un campo) e ho un id autoincrementale, purtroppo la funzione
    codice:
    INSERT INTO jos_content SELECT * FROM jos_content where id='84'
    non può funzionare xchè mi riscrive anche l'id

    ho visto nella documentazione di mysql che c'è anche una funzione LAST_INSERT_ID(), ma non riesco a farla funzionare, anzi per essere onesti non riesco a capirla....

    viva
    www.contabilitafacile.it

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.