- Home
- Categorie
- Coding e Sistemistica
- PHP
- Redirect
-
Redirect
Buogiorno a tutti,
Devo realizzare una cosa e volevo chiedervi una dritta su come farlo:
in una pagina php che serve a gestire delle ordinazioni, in testa ho un campo che, all'immissione di un numero di tel, visualizza anche un nome ed un indirizzo estraendoli per mezzo di una query select da una tabella del db.
Dovrei fare in modo che se il cliente è nuovo, quindi i dati nel db non sono presenti, l'utente inserisca i dati di:- tel
- nome
- indirizzo
del nuovo cliente, e fin qui non ci sono problemi, si fa con una query di insert e questi dati verranno immessi nel db. A questo punto, normalmente, uso un'istruzione in java:
<script type="text/javascript" language="javascript">
document.location.href="visualizza.php";
</script>
per essere reidirizzato alla pagina che visualizza gli inserimenti effettuati.
In questo caso però dovrei fare in modo di reindirizzare su una pagina in cui venga visualizzato SOLO l'ultimo record inserito.
In pratica se il cliente è già nel db, all'immissione del numero di tel verranno estratti anche indirizzo e nome, altrimente l'utente effettuerà un normale inserimento ma poi dovrà essere reindirizzato su una pagina in cui, oltre agli altri dati necessari, siano presenti anche quelli del cliente appena inserito.
Spero in qualche modo di essermi spiegato e che ci sia un modo non troppo complesso per farlo.
grazie 1000 a chi potrà consigliarmi, buona giornata
-
Ciao popeye.
Puoi trasportarti l'id del record che ti recuperi subito dopo l'inserimento tramite la funzione mysql_insert_id().
-
Grazie tante Samyron, oggi lo provo e poi ti faccio sapere.
Buona giornata.
-
Ciao Samyron, ho provato la funzione che mi hai indicato (tra l'altro ho visto che nel codice c'è del "C", che sto iniziando a studiare :)), però o non è quello che mi serve o non ho capito bene come devo usarlo perchè mi restituisce solo un nuovo id, ma non inserisce nulla:
<?php
$link = $db=mysql_connect($host, $user, $password)
or die ("impossibile connettersi al server $host");mysql_select_db($database, $db) or die ("impossibile connettersi al database $database");
mysql_query("INSERT INTO clienti (id_cliente,tel,ind,nome) values ('$id_cliente', '$tel', '$ind', '$nome')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>
-
Mysql_insert_id non inserisce nulla. Ti restituisce semplicemente il valore della chiave primaria da te stabilita nella tabella a seguito dell'ultimo inserimento. Se, per esempio, l'ultimo inserimento ha id=538 nella tabella (campo id, auto_increment, primary key), mysql_insert_id sarà uguale a 538.
Una volta che hai l'id dell'ultimo inserimento effettuato headeri sulla pagina di visualizzazione trasportandoti via url l'id e quindi recuperi questo valore e costruisci la pagina estraendo i dati collegati a quell'id.