• 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]