Salve avrei un problema, ho creato questo codice per ricercare dei record di una tabella sql e visualizzarla in modo ordinato
vorrei creare pulsante delete per ogni record trovato per riuscire a cancellarlo.
Sono riuscito a farlo con questo
pero non è tanto sicuro perché basta cambiare nell'url id e cancello il record anche se mi compare la pagina di conferma
La domanda è questa, esiste un modo per cancellare un record senza che compari nella barra indirizzi ?id=$id ??
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div align="center">
<table border="0" id="main" width="500">
<tr>
<td width="250">
</td>
<td align="center" width="250">
<h1>Ricerca</h1>
<form action="prova.php" method="POST">
<input type="text" name="query" /><br>
<input type="submit" value="Search" />
</form>
<?php
$host = '127.0.0.1';
$user = 'root';
$password = '';
$database = 'xls_db';
$db = mysql_connect($host,$user,$password)
or die ("Impossibili connettersi al server $host");
mysql_select_db($database,$db)
or die ("Impossibili connettersi al database $database");
//ricerca serie//
if (isset($_POST['query']))
{
// Istruzioni se $_POST['myVar'] esiste
$query = $_POST['query'];
$min_length = 1;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$query = "SELECT * FROM foglio1 WHERE (`dato1` LIKE '%".$query."%') OR (`dato2` LIKE '%".$query."%') ORDER BY dato1,dato2 ";
$dbResult = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);
print "<table border=\"1\" width=\"380\">\n";
if($AffectedRows > 0){
for ($index=0 ; $index<$AffectedRows ; $index++)
{
$row=mysql_fetch_row($dbResult);
if ($index==0)
{
print "<tr>\n";
foreach ($row as $k => $v)
{
$myfield = mysql_fetch_field($dbResult,$k);
print ("<td><b>" . $myfield->name . "</b></td>");
}
print "</tr>\n";
}
foreach ($row as $k => $v)
{
print ("<td>$v ");
if ($k==0)
{
print "<br>";
}
print ("</td>");
}
print "</tr>\n";
}
print "</table>\n";
mysql_free_result($dbResult);
mysql_close();
}
else {
echo "Nessun Valore Trovato";
}
}
else{
}
}
?>
</td>
</tr>
</table>
</div>
</body>
</html>
vorrei creare pulsante delete per ogni record trovato per riuscire a cancellarlo.
Sono riuscito a farlo con questo
PHP:
print "<a href=elimina.php?id=$v>Cancella</a>";
PHP:
<?php
require 'acc_db.php';
if (isset($_REQUEST["confirm"]))
$confirm = $_REQUEST["confirm"];
else
$confirm = 0;
$id=$_REQUEST['id'];
if ($confirm)
{
$query = "delete from foglio1 where id=$id";
$dbResult = mysql_query($query,$db);
$AffectedRows = mysql_affected_rows($db);
if ($AffectedRows==0)
{
print ("<h3>Non esistono record con i criteri selezionati</h3>");
}
else
{
print("<h3> Il record è stato eliminato</h3>");
print("<h3><a href=prova.php>Torna alla lista</a></h3>");
}
mysql_close($db);
}
else
{
print("<h3> Eliminare il record?</h3>");
print("<h3><a href=\"{$_SERVER['PHP_SELF']}?id=$id&confirm=1\"> Conferma</a></h3>");
print("<h3><a href=prova.php>Annulla</a></h3>");
}
?>
La domanda è questa, esiste un modo per cancellare un record senza che compari nella barra indirizzi ?id=$id ??