- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- [PHP+mysql] modificare i dati tabella
-
[PHP+mysql] modificare i dati tabella
Ciao a tutti. Sono nuovo del PHP vi posto il codice di una pagina che ho fatto. Mi fa visualizzare i dati del db in una tabella.A destra ho messo 2 iconcine una per cancellare e mi funziona e per la modifica. Volevo far sì che quando clicco sull'inconcina modifica mi si apra una pagina in cui ci sono dei form che mi riprendono i dati della tabella che ho nel mio db e si possano moficare e salvarli sul db. Non so se mi sono spiegato bene! Chiedo scusa se non l'ho fatto..
[php]
<html>
<head>
<title>EMAIL BONET LEPSCHY & ASSOCIATI</title>
</head>
<body text="#990000" link="#990000" vlink="#990000" alink="#990000">
<font FACE="VERDANA">
<?php
require 'conn.php';
if($_POST)
{
$ids = isset($_POST['cod']) ? $_POST['cod'] : array();
elimina_record($ids);
}
elseif(isset($_GET['cod']))
{
elimina_record(array($_GET['cod']));
}
else
mostra_lista();function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';// preparo la query $query = "SELECT cod,rag_soc_1,rag_soc_2,E_mail_1,E_mail_2,E_mail_3 FROM email"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } echo ' <table border="1 px" bordercolor="#006633" align="center" CELLSPACING="0" frame="box">
<tr bgcolor="#EAEAEA">
<td NOWRAP align="center">Cod</td>
<td NOWRAP align="center">Cognome</td>
<td NOWRAP align="center">Nome</td>
<td NOWRAP align="center">Email 1</td>
<td NOWRAP align="center">Email 2</td>
<td NOWRAP align="center">Email 3</td>
<td NOWRAP align="center"></td>
<td NOWRAP align="center"></td>
</tr>';while ($row = mysql_fetch_assoc($result)) { $cod =htmlentities($row['cod']); $rag_soc_1 =htmlentities($row['rag_soc_1']); $rag_soc_2 =htmlentities($row['rag_soc_2']); $E_mail_1 =htmlentities($row['E_mail_1']); $E_mail_2 =htmlentities($row['E_mail_2']); $E_mail_3 =htmlentities($row['E_mail_3']); // preparo il link per la modifica dei dati del record $link = $_SERVER['PHP_SELF'].'?cod=' . $row['cod'];
$bgcolor = $bgcolor == '#ffffff' ? '#EAEAEA' : '#ffffff';
echo " <tr bgcolor=$bgcolor> <td NOWRAP><font size=\"1\">$cod</font></td> <td NOWRAP><font size=\"1\">$rag_soc_1</font></td> <td NOWRAP><font size=\"1\">$rag_soc_2</font></td> <td NOWRAP><font size=\"1\">$E_mail_1</font></td> <td NOWRAP><font size=\"1\">$E_mail_2</font></td> <td NOWRAP><font size=\"1\">$E_mail_3</font></td> <td NOWRAP ><a href=\"\"><img src=\"mod.png\" alt=\"modifica\" border=\"0\"></a></td> <td NOWRAP ><a href=\"$link\"><img src=\"del.gif\" alt=\"cancella\" border=\"0\"></a></td> </tr>"; } echo '</table> <br /> '; // libero la memoria di PHP occupata dai record estratti con la SELECT mysql_free_result($result); // chiudo la connessione a MySQL mysql_close();
}
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}// per precauzione converto gli ID in interi $ids = array_map('intval',$ids); // creo una lista di ID per la query $ids = implode(',',$ids); // preparo la query $query = "DELETE FROM email WHERE cod IN ($ids)"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); }
// conto il numero di record cancellati
$num_record = mysql_affected_rows();// chiudo la connessione a MySQL mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);}
?>
</font>
</body>
</html>[/php]
A e poi volevo sapere se si può far si che mi venga un popup prima di cancellare la riga per chiedere se si è sicuri o meno. Se si cancella se non ritorna indietro
-
Ciao gotiche e benvenuto nel forum GT.
Prova a fare così (sostituisci la parte di codice interessata):
[php]
session_start();
$_SESSION[cod]=$cod;
$_SESSION[rag_soc_1]=$rag_soc_1;
$_SESSION[rag_soc_2]=$rag_soc_2;
$_SESSION[E_mail_1]=$E_mail_1;
$_SESSION[E_mail_2]=$E_mail_2;
$_SESSION[E_mail_3]=$E_mail_3;
$link = 'modifica.php?cod=' . $row['cod']; [/php]Poi in modifica.php metti:
[php]
if(isset($_GET[cod])){
session_start();
// codice per form e modifiche
}[/php]Ora per recuperare le variabili impostate dalla pagina precedente usa la variabile globale $_SESSION.
Ad esempio per stampare la variabile $rag_soc_1 impostata precedentemente usa:
[php]echo $_SESSION[rag_soc_1];[/php]Per la modifica dei campi usa la sintassi mysql UPDATE.Per la seconda richiesta fai così (sempre sostituendo):
[php]
elseif(isset($_GET['cod']))
{
echo "
<SCRIPT LANGUAGE="JavaScript">
action = confirm('Premi ok per procedere o cancel per annullare');
if (action==true)
parent.self.location.href = '?elim=1';
</script>";}if($_GET[elim]=1){ elimina_record(array($_GET['cod']));
}
[/php]
Ciao!
-
ora provo!grazie!
-
Di niente,facci sapere
-
con questa parte di codice non riesce più a connettersi al DB...
[php]
elseif(isset($_GET['cod']))
{
echo "
<SCRIPT LANGUAGE="JavaScript">
action = confirm('Premi ok per procedere o cancel per annullare');
if (action==true)
parent.self.location.href = '?elim=1';
</script>";}if($_GET[elim]=1){ elimina_record(array($_GET['cod']));
}
[/php]e con questo non mi tire fuori più i dati... =(
[php]
session_start();
$_SESSION[cod]=$cod;
$_SESSION[rag_soc_1]=$rag_soc_1;
$_SESSION[rag_soc_2]=$rag_soc_2;
$_SESSION[E_mail_1]=$E_mail_1;
$_SESSION[E_mail_2]=$E_mail_2;
$_SESSION[E_mail_3]=$E_mail_3;
$link = 'modifica.php?cod=' . $row['cod'];
[/php]
-
nessu'altro suggerimento?