Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34

Discussione: Comando "Modifica"

  1. #1

    Comando "Modifica"

    Salve a tutti,
    ho creato un pannello admin dove ogni utente tramite la compilazione di una ventina di campi, ha la possibilità di visualizzarli in una pagina chiamata visualizza.php
    In questa pagina è possibile tramite il tasto "Cancella" eliminare la stringa di dati inserita.
    Volevo sapere come fare per creare il comando "Modifica" in modo tale da non cancellare tutta la stringa se si volesse modificare solo un campo.
    Vi posto il codice della pagina admin.php in cui si trova lo script della funzione "Cancella".

    Premessa:
    il pannello in questione sfrutta un file di testo utenti.txt per memorizzare i dati inviati dal form, non utilizza un database con tabelle.


    admin.php

    <?php
    $azione=$_GET["action"];
    $riga=$_GET["row"];
    if ($azione=='cancella') {


    $textfile = fopen("utenti.txt", "r");
    $textfile_new = fopen("utenti_new.txt", "a");

    while ($rigafile = fgets($textfile,1024)) {
    $campiriga = explode("|", $rigafile);
    $idriga = $campiriga[0];

    if ($idriga <> $riga)
    {
    fwrite($textfile_new, $rigafile);
    }
    }

    fclose($textfile);
    fclose($textfile_new);

    unlink("utenti.txt");
    rename("utenti_new.txt","utenti.txt");

    echo "Cancellazione eseguita con successo
    ";

    $text_file = fopen("utenti2.txt", "r");
    $text_file_new = fopen("utenti_new2.txt", "a");

    while ($riga_file = fgets($text_file,1024)) {
    $campi_riga = explode("~:~", $riga_file);
    $id_riga = $campi_riga[0];

    if ($id_riga <> $riga)
    {
    fwrite($text_file_new, $riga_file);
    }
    }

    fclose($text_file);
    fclose($text_file_new);

    unlink("utenti2.txt");
    rename("utenti_new2.txt","utenti2.txt");

    echo "<a href=pannello.php>Torna al pannello</a>";
    }


    if ($azione=='modifica'){

    // codice per modificare... AIUTATEMI!!

    }

    ?>

    Grazie a tutti!!

  2. #2
    Il miglior consiglio che ti si possa dare e' lasciar perdere i file di testo e usare un database. Con un database queste operazioni sono molto piu' semplici, rapide e affidabili. I file di testo NON SONO un'alternativa ad un database, e soprattutto non sono piu' semplici da usare per questo scopo, anzi.

  3. #3
    Azz.....bel casino....

  4. #4
    Bene sono riuscito a rifare il tutto con un db mysql.
    Questo è il codice che utilizzo per il comando cancella:

    <?php


    $IDS = $_GET["id"];

    $con = mysql_connect("localhost","db_user","db_pass");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("db_name", $con);
    mysql_query("SET NAMES 'utf8'");


    mysql_query("DELETE FROM appuntamenti where id = $IDS ");


    mysql_close($con);
    ?>

    Appuntamento cancellato con successo <? echo $IDS ?></td>



    Per il comando Modifica come devo fare???
    Grazie a tutti

  5. #5
    Dovresti fare una cosa del genere:
    1. Recuperi l'ID del record da modificare ($id = $_GET["id"]
    2. Effettui una select sul DB per recuperare i dati relativi all'ID
    3. Visualizzi i dati così recuperati in una form
    4. Al submit della form richiami la stessa pagina oppure una pagina differente che effettua l'UPDATE sul DB.

    Codice PHP:
    ...
    <?php
    $id 
    $_GET["id"];
    ...
    $result mysql_query("SELECT colonna1, ..., colonnaN FROM appuntamenti where id = $id");
    $record mysql_fetch_array($result);
    ...
    ?>
    ...
    <form action="pagina.php" method="post">
        <input type="text" name="colonna1" value="<?php echo $record['colonna1']; ?>" />
        ...
        <input type="text" name="colonnaN" value="<?php echo $record['colonnaN']; ?>" />
        <input type="hidden" name="id" value="<?php echo $id?>" />
        <input type="submit" name="submit" value="submit" />
    </form>
    ...
    Nella pagina di destinazione recuperi i valori con $_POST[], effettui i dovuti controlli ed infine fai l'UPDATE sul DB.
    Ovviamente è solo una bozza d'esempio ma come logica può andare.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Mmmmmm....
    Ok grazie mille satifal.
    Provo immediatamente. Se ho problemi ti rompo un pò le scatole allora.
    Solo una cosa:
    il codice che mi hai postato lo metto in una pagina .php a se?
    Per esempio la chiamo edita.php come ho fatto per il comando cancella?

  7. #7
    Dunque ho creato una pagina "edita.php" con il seguente codice:

    <?php
    $id = $_GET["id"];

    $result = mysql_query("SELECT ora, data, ragione FROM appuntamenti where id = $id");
    $record = mysql_fetch_array($result);

    ?>

    <form action="edita.php" method="post">
    <input type="text" name="ora" value="<?php echo $record['ora']; ?>" />
    <input type="text" name="data" value="<?php echo $record['data']; ?>" />
    <input type="text" name="ragione" value="<?php echo $record['ragione']; ?>" />
    <input type="hidden" name="id" value="<?php echo $id; ?>" />
    <input type="submit" name="submit" value="submit" />
    </form>


    Mi restituisce i 3 record vuoti e se io dentro scrivo qualcosa una volta cliccato Submit i dati nel db non vengono modificati.
    Dove sbaglio?
    Tra l'altro vorrei anche che i campi restituiti mi facessero visualizzare quello che c'è scritto attualmente invece di essere vuoti.
    C'è un modo per fare questo?

  8. #8
    Io ti ho una bozza di esempio del codice che avrebbe dovuto indicarti la logica da seguire. Dal fatto che tu abbia copiato ed incollato alla lettera tutto quanto desumo che non hai molto chiare le idee su PHP o sulla programmazione in generale.
    A questo punto, se pretendi la pappa pronta ti consiglio di postare la tua richiesta su Offro lavoro/collaborazione
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Lo so anche io ceh ho un pò di dubbi altrimenti non sarei manco venuto a chiedere.
    Sto script va messo in una pagina a se o no?
    E l'action su che pagina va puntato?

  10. #10
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Sto script va messo in una pagina a se o no?
    Si può fare in entrambi i modi. Se vuoi inviare i dati ad un altra pagina, modifica l'action puntandolo a edita2.php.

    edita2.php si occuperà di recuperare $_POST['id'], $_POST['ora'], $_POST['data'] e $_POST['ragione']. Dopodichè, in funzione di $_POST['id'], si eseguirà la query per l'aggiornamento (UPDATE). Capito il concetto, il resto dovrebbe venire da se, no?

    Tra l'altro vorrei anche che i campi restituiti mi facessero visualizzare quello che c'è scritto attualmente invece di essere vuoti.
    Succede perchè $_GET["id"] non è valido (non esiste nel database), serve un controllo per verificare se $_GET["id"] esiste o meno.

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.