• User Newbie

    Problema prelevamento id

    salve a tutti , ho un problema con una pagina in php, in pratica io ho un database dove inseirsco i dati di un certo cliente poi attraverso una pagina di ricerca fatta in html con codice php mi cerca se il cliente esiste o se non esiste se esiste mi manda ad un'altra pagina che mi fa visualizzare e modificare i dati del cliente ora la parte della visualizzazione ancora la devo fare , ho provato a fare quella della modifica però quando vado tipo a modificare il nome , nel database mi modifica il nome di tutti i record io invece volgio che mi modifica il nome della persona che ho cercato.... posto il codice:

    <html>
    <?php
    $db_host="localhost";
    $db_Nutente="root";
    $db_password="";
    $db_name="campingshop";
    
    $mysql=mysql_connect($db_host,$db_Nutente,$db_password)or die("non riesco a connettermi");
    mysql_select_db($db_name,$mysql)or die("non riesco a trovare il DB");
    
    $nome=$_POST["nome"];
    $cognome=$_POST["cognome"];
    $codicefiscale=$_POST["codfisc"];
    $indirizzo=$_POST["indirizzo"];
    $telefono=$_POST["telefono"];
    $black=$_POST["black"];
    $query= "UPDATE persona SET ";
    
    if($nome != ''){
        $query .= "nome = '$nome'";
    }
    
    if($cognome != ''){
            $query .= "cognome = '$cognome'";
    }
    
    if($codicefiscale != ''){
    
            $query .= "codicefiscale = '$codicefiscale'";
     }
    if($indirizzo != ''){
    
               $query .= "indirizzo = '$indirizzo'";
     }
    if($telefono != ''){
    
            $query .= "telefono = '$telefono'";
     }
    if($black != ''){
    
            $query .= "black = '$black'";
     }
    
    $result = mysql_query($query) or die("Errore nell'inserimento dei dati nel DataBase"); 
    
    echo" Modifica Riuscita";
     echo"<br>";
     echo"<a href='./ricerca.html'>Cerca un altro cliente"; 
     echo"<br>";
     echo"<a href='./registra.html'>Registra un altro cliente"; 
    
    ?>
    ```io ho pensato di recuperare l'id però non so come fare dato ke ho messo un id AUTO_INCREMENT poi vorrei fare la visualizzazione prima di modificare i dati grazie a tutti

  • User

    Dovrebbe bastare una cosa del tipo:

    print("L'ultimo id inserito è l'id:".mysql_insert_id());
    

    Pagina di riferimento:
    it.php.net/manual/it/function.mysql-insert-id.php


  • User Newbie

    @il_gege said:

    Dovrebbe bastare una cosa del tipo:

    >print("L'ultimo id inserito è l'id:".mysql_insert_id());
    >```Pagina di riferimento:
    it.php.net/manual/it/function.mysql-insert-id.php
    
    
    no perchè cosi mi visualizza l'ultimo id, io voglio che una volta fatta la ricerca decido di andare alla pagina di modifica e modificare il cliente che ho cercato... però non voglio fa inseire l'id da tastiera ma voglio che lo recupera direttamente con una query

  • User

    Fatico a capire...però...

    Nell'update, l'id non viene toccato come lo fai te...

    O meglio, prima dovresti fare la query di select con i valori di partenza per recuperare l'id, poi nell'update fai l'update WHERE ColonnaID = IDRecuperato.


  • User Attivo

    Ciao,
    nella pagina col form di modifica presumo che dal db tu recuperi tutti i dati di quella persona visualizzandoli nei vari campi input.
    Oltre ai dati con la stessa query è sufficiente che prelevi anche l'id e lo inserisci in un campo input con nome "id" e di tipo "hidden", che come gli altri potrai recuperare dal post:
    [PHP]
    $id=$_POST["id"];
    [/PHP]

    Quando fai l'update aggiungi in fondo alla query la condizione
    [PHP]
    $query .= " WHERE id = '$id";
    [/PHP]

    Alessandro


  • User Attivo

    Hai dimenticato un apice singolo 😉

    [PHP]$query .= " WHERE id = '$id"; [/PHP]

    E cmq meglio farlo un mysql_real_escape_string($id) prima di metterlo nella query.


  • User Newbie

    grazie ora ci provo 😄