Pagina 1 di 2
eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 0:12
da federi
Ciao, ho un problema con php/mysql.
Ho creato una tabella che visualizza i record di un database di contatti telefonici.
In ogni riga della tabella ho anche inserito un bottone che mi permette di eliminare dal db il contatto corrispondente alla riga della tabella in cui c'è il bottone che l'utente ha premuto. In realtà però qualsiasi bottone venga premuto, viene eliminato sempre il record corrispondente all'ultima riga. Credo sia perchè nella variabile che utilizzo per l'eliminazione rimane il numero di telefono dell'ultimo contatto visualizzato.
Mi aiutate a risolvere questo problema?
Grazie
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 7:23
da brunino
Se magari metti il codice...
Inviato dal mio MotoE2(4G-LTE) utilizzando Tapatalk
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 11:05
da federi
Questo è il codice in cui creo la tabella.. nelle ultime righe c'è la creazione del collegamento a elimina.
Codice: Seleziona tutto
<table align="center" cellpadding="6" cellspacing="0" border="1">
<thead>
<tr>
<th>Foto</th>
<th>Nome</th>
<th>Cognome</th>
<th>Telefono</th>
<th>Via</th>
<th>Citta</th>
<th>Provincia</th>
<th>Cap</th>
<th>Email</th>
<th> <?php echo " "; ?> </th>
<th> <?php echo " "; ?> </th>
</tr>
<thead>
<tbody>
<?php
$riga="0";
$num="0";
while ($riga = mysql_fetch_assoc($risposta_cerca_contatto)){
$num++;
//creo il file in formato vcard con le informazioni sul contatto
$filename="vcard_files/".$riga['nome']."_".$riga['cognome'].$num.".vcf";
$f = fopen($filename,"w");
$testo="\n";
$testo=$testo."BEGIN:VCARD\r\n";
$testo=$testo."VERSION:2.1\r\n";
$testo=$testo."N:".$riga['cognome'].";".$riga['nome'].";\r\n";
$testo=$testo."FN:".$riga['nome']." ".$riga['cognome']."\r\n";
$testo=$testo."ADR;home: ;;".$riga['via'].";".$riga['citta'].";".$riga['provincia'].";".$riga['cap'].";\r\n";
$testo=$testo."EMAIL;INTERNET:".$riga['email']."\r\n";
$testo=$testo."TEL;cell;VOICE:".$riga['telefono']."\r\n";
if(!empty($riga['photo'])){
$foto=substr($riga['photo'], 9);
$photo=base64_encode(file_get_contents($foto));
$photo = wordwrap($photo, 72, "\r\n ", true);
$testo=$testo.'PHOTO;TYPE=JPEG;ENCODING=BASE64:' . "\r\n " . $photo . "\r\n\r\n";
}
$testo=$testo."END:VCARD";
fwrite($f,$testo);
fclose($f);
?>
<tr>
<td>
<?php
if(!empty($riga['photo'])){ ?>
<img src="<?php echo $riga['photo'] ?>" style="width:80px; height:80px;">
<?php }
else {
?> <img src="images/Bianco.gif" style="width:30px; height:30px;""> <?php
}?>
</td>
<td>
<?php echo $riga['nome'] ?>
</td>
<td>
<?php echo $riga['cognome'] ?>
</td>
<td>
<?php echo $riga['telefono'] ?>
</td>
<td>
<?php
if(!empty($riga['via'])){
echo $riga['via'];
}
else{
echo " ";
}
?>
</td>
<td>
<?php
if(!empty($riga['citta'])){
echo $riga['citta'];
}
else{
echo " ";
}
?>
</td>
<td>
<?php
if(!empty($riga['provincia'])){
echo $riga['provincia'];
}
else {
echo " ";
}
?>
</td>
<td>
<?php
if(!empty($riga['cap'])){
echo $riga['cap'];
}
else {
echo " ";
}
?>
</td>
<td>
<?php
if(!empty($riga['email'])){
echo $riga['email'];
}
else{
echo " ";
}
?>
</td>
<td>
<a href="<?php echo $filename ?>">
<img src="/Rubrica/images/vcard.png" title='vCard'>
</a>
</td>
<td>
<?php $_SESSION['tel'] = $riga['telefono']; ?>
<a href="elimina_contatto.php" title='elimina'>
<img src="/Rubrica/images/delete.png">
</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
elimina_contatto.php
<?php
include('cerca.php');
$query_elimina_contatto="DELETE FROM contatti WHERE telefono='".$_SESSION['tel']."'";
$risposta_elimina_contatto=mysql_query($query_elimina_contatto,mysql_connect($db_hostname, $db_username, $db_password)) or die ("<br><b>Attenzione</b>: query per la ricerca del contatto non valida!");
if($risposta_elimina_contatto == FALSE){
echo '<script type="text/javascript">alert("Errore durante l\'eliminazione del contatto.");</script>';
}
else{
echo '<script type="text/javascript">alert("Contatto eliminato.");</script>';
}
?>
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 12:51
da federi
Sono riuscita a risolvere il problema utilizzando $_GET[].
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 13:26
da Sir Xiradorn
Ciao fede un piccolo consiglio. Non usare le istruziony mysql ma impara gia da subito a usare il PDO e visto che devi fare una rimozione, impara il concetto di transazione e commit / rollback
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 18:58
da federi
Grazie del consiglio, mi puoi dire quali sono i vantaggi di PDO?
E' la prima applicazione che faccio in php
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 19:26
da Sir Xiradorn
Sono pressochè questi:
- Connessione multitipologica: puoi connetterti a diversi tipi di db usando lo stesso set di funzioni create
- Incremento della sicurezza: prevenire le sql injection non è cosa da poco e con queste lo puoi fare molto più facilmente
- Reversibilita delle operazioni INSERT, DELETE, UPDATE che vengono fatte tramite transazione e non tramite normale query
- dalla versione 7 di php le mysql non saranno più presenti. Le sole sono quelle del set PDO
- migliore controllo e filtraggio
- Sono un po più complicate da usare (all'inizio) ma sono davvero super funzionali
Re: eliminazione record da database tramite onclick php
Inviato: 17/11/2015, 20:08
da federi
Ok, grazie ancora!!