• User Attivo

    Per le tabelle differenti te l'ho detto, quello era uno script non aggiornato, dato che dietro di me avevo solo la penna, ma in quello originale coindidono, infatti funziona perfettamente. 🙂


  • User Attivo

    Ciao! Ecco la pagina modifica_dati_clienti.php intera 🙂
    Gli ho aggiunto l'isset.
    [php]<?php
    // Dati connessione al database
    $db_host = 'localhost'; // Host - solitamente localhost
    $db_utente = 'root'; // Nome utente del Database
    $db_password = ''; // Password del Database
    $db_nomedb = ''; // Nome del Database
    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nomedb);

    if (isset($_POST['id_cl']) && !empty($_POST['id_cl'])) {
    $id=$_POST['id_cl'];
    $cognome=$_POST['cognome'];
    $nome=$_POST['nome'];
    $query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id_cl = '$id_cl'");
    $risultato = mysql_query($query) or die ("Query "$query" fallita ::: ".mysql_error());
    echo "update eseguito";
    }
    else {
    ?>
    <form method="post" action="modifica_dati_clienti.php">
    <input type="hidden" name="id_cl"><br />
    NOME <input type="text" name="nome"><br />
    COGNOME <input type="text" name="cognome"><br />
    <input type="submit" value="Invia" />
    </form>
    <?php } ?>
    [/php]

    Non mi dà nessun errore, nè warning nè notice, mi fà compilare il form e mi rimanda al form, come da richiesta se l'update non è stato eseguito.


  • ModSenior

    Perciò ora non ti da nessun errore ma non ti modifica i campi?
    Nella tabella c'è il record con quell'id?


  • User Attivo

    Nella tabella db c'è id_cl, nome e cognome...PINCO PALLO...ma non modifica nulla...mi riporta al form...


  • ModSenior

    Ah, ti rimostra proprio il form.
    Prova cosi:
    [php]
    <?php
    // Dati connessione al database
    $db_host = 'localhost'; // Host - solitamente localhost
    $db_utente = 'root'; // Nome utente del Database
    $db_password = ''; // Password del Database
    $db_nomedb = ''; // Nome del Database
    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nomedb);

    if(isset($_POST['nome'])) {
    $id=$_POST['id_cl'];
    $cognome=$_POST['cognome'];
    $nome=$_POST['nome'];
    $query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id_cl = '$id_cl'");
    $risultato = mysql_query($query) or die ("Query "$query" fallita ::: ".mysql_error());
    echo "update eseguito";
    }
    else {
    ?>
    <form method="post" action="modifica_dati_clienti.php">
    <input type="hidden" name="id_cl"><br />
    NOME <input type="text" name="nome"><br />
    COGNOME <input type="text" name="cognome"><br />
    <input type="submit" value="Invia" />
    </form>
    <?php } ?>
    [/php]
    Ma comunque $_POST['id_cl'] non ha alcun valore perchè l'input non ha alcun value perciò non potrà fare l'update di niente.


  • User Attivo

    Mi rimostra sempre il form...


  • ModSenior

    Non può essere, ma questa pagina si chiama modifica_dati_clienti.php?


  • User Attivo

    No, scusami, mi dice:

    Notice: Undefined variable: id_cl in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 15
    Query "" fallita ::: La query e` vuota

    Ma perchè è vuota??? :arrabbiato:


  • ModSenior

    Te l'ho scritto prima:
    $_POST['id_cl'] non ha alcun valore perchè l'input non ha alcun value perciò non potrà fare l'update di niente.


  • User Attivo

    Avevo scritto male la pagina...una lettera digitata in più...scusami...ora:

    Notice: Undefined variable: id_cl in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 15
    Query "1" fallita ::: Errore di sintassi nella query SQL vicino a '1' linea 1


  • User Attivo

    Ma il problema è l'id_cl? bisogna dagli un value? non credo...:?


  • ModSenior

    Se non gli dai un value cosa vuoi passare? Passi una variabile senza valore...


  • User Attivo

    Comunque nel codice mancava il "cl"...ora non mi dà più il notice...ma il resto come lo si risolve?


  • User Attivo

    Ma anche il nome e cognome non hanno un value...o sbaglio?


  • ModSenior

    L'id da qualche parte devi tenertelo...
    Solitamente si passa in GET alla pagina, tipo voglio modificare l'utente con ID 3 uso la pagina modifica.php?id=3
    E mi recupero l'id con $_GET['id'].


  • ModSenior

    Il nome e cognome viene inserito manualmente perciò il value non serve, anche perchè non è usato come condizione nella query è può avere come valore una stringa vuota.


  • User Attivo

    Ma quindi è impossibile fare quello che vorrei fare...cioè cliccare semplicemente sul cognome da modificare e modificarlo...

    Se lo devo fare con GET tanto vale non è più semplice farlo attraverso il db?


  • User Attivo

    Tornando al discorso di prima...mi dà errore nella query:

    Query "1" fallita ::: Errore di sintassi nella query SQL vicino a '1' linea 1


  • User Attivo

    Ciao!!!

    Ho un pò letto e guarda il codice che ovviamente non và, però penso che io abbia imboccato la strada giusta...

    Quando clicco sul cognome (vedo che mi dà id_cl progressivo per cliente) clicco sul cognome ma mi dà questo errore:

    Query 'SELECT nome, cognome FROM inserimento_dati where id_cl=>2 ACCETTATO DA: <a href= LIMIT 1' fallita

    " . mysql_error() );
    $inserimento_dati = mysql_fetch_array( $risultato );
    [/PHP]

    Poi ho la pagina modifica_dati_clienti.php
    [PHP]<form method="post" action="">
    <input type="hidden" name="id_cl" value="<?php echo $id_cl; ?>"><br />
    NOME <input type="text" name="nome" value="<?php echo $inserimento_dati['nome']; ?>" ><br />
    COGNOME <input type="text" name="cognome" value=$inserimento_dati['cognome']; ?>" ><br />
    <input type="submit" value="Invia" />
    </form>
    <?php
    if (isset($_POST['submit']) && !empty($_POST['id_cl'])) {
    $id_cl=$_POST['id_cl'];
    $cognome=$_POST['cognome'];
    $nome=$_POST['nome'];
    $query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id_cl = '$id_cl'");
    $risultato = mysql_query($query) or die ("Query "$query" fallita ::: ".mysql_error());
    echo "update eseguito";
    }
    else {
    echo "impossibile procedere con l'update";
    }
    ?>
    [/PHP]
    E mi dice impossibile procedere con l'update. 😢
    Grazie moltissime per la pazienza! 🙂


  • User Attivo

    Modifica la query
    [php]$query = "SELECT nome, cognome FROM inserimento_dati where id_cl=".$id_cl." LIMIT 1";
    Così :[/php]
    [php]$query = "SELECT nome, cognome FROM inserimento_dati WHERE id_cl='".$id_cl."' LIMIT 1"; [/php]