Eliminare una tabellaDopo la creazione della tabella è ovvio che dovremmo avere la possibilità di eliminarla.
Anche in questo caso useremo due files:
* cancella_tabella.php
* cancella_tabella_canc.php
Il primo mostra lo stato della tabella (esistente ed eventualmente quanti record contiene
Il secondo esegue l'operazione di eliminazione
Come il solito il primo file (cancella_tabella.php) verifica l'esistenza della tabella ed eventualmente ne mostra alcuni contenuti.
Questo il codice del file cancella_tabella.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Gestione cerca</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="css/stile.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header">
<h1> </h1>
</div>
<div id="navigation"> </div>
<div id="content">
<h1>Eliminazione della tabella</h1>
<h2>Inizia la procedura di eliminazione della tabella</h2>
<p>La tabella verrà eliminata se esiste</p>
<?php
include ("res/config_db.php");
include ("res/functions.php");
$Query = "SHOW TABLES FROM $DBName";
$all_tables = show_tables($Query);
if (in_array($table, $all_tables)) {
$Query = "SELECT * FROM ".$table;
$num_rec = num_record($Query);
if ($num_rec != 0) {
echo $num_rec . " record per la tabella " .$table. "<br />\n";
echo "Eliminando la tabella i dati andranno persi<br />\n";
} else {
echo "Nessun record nella tabella ".$table."<br />\n";
}
echo "<a href=\"cancella_tabella_canc.php?tabella=".$table."\">elimina la tabella</a><br />\n";
} else {
echo "La tabella " . $table . " non esiste ne DB<br />\n";
echo "Impossibile la sua eliminazione<br />\n";
}
?>
</div>
<div id="footer">
<?php
include ("res/link.php");
?>
</div>
</div>
</body>
</html>
In questo file notiamo, più o meno le stesse caratteristiche del primo file mostrato per la creazione della tabella (crea_tables.php).
Quindi passiamo al secondo file che esegue l'operazione
Questo il codice del file cancella_tabella_canc.php:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Gestione cerca</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="css/stile.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header">
<h1> </h1>
</div>
<div id="navigation"> </div>
<div id="content">
<h1>Elenco della tabelle presenti nel DB</h1>
<?php
include ("res/config_db.php");
include ("res/functions.php");
$tabella = $_REQUEST['tabella'];
$Query = "SHOW TABLES FROM $DBName";
$all_tables = show_tables($Query);
if (in_array($tabella, $all_tables)) {
echo "Cancellazione della tabella " . $tabella . "<br />\n";
$Query = "DROP TABLE " . $tabella;
echo "La query:<br />" . $Query . "<br />";
if (execute_query($Query)) {
echo "La tabella " . $table . " è stata cancellata correttamente<br />";
} else {
echo "Non è stato possibile cancellare la tabella " . $table . "<br />";
}
} else {
echo "La tabella " . $table . " non esiste ne DB<br />\n";
echo "Impossibile la sua eliminazione<br />\n";
}
?>
</div>
<div id="footer">
<?php
include ("res/link.php");
?>
</div>
</div>
</body>
</html>
Le note per questa pagina.
Inclusione dei soliti files esterni contenenti i dati e le funzioni usati nella gestioneinclude ("res/config_db.php");
include ("res/functions.php");
Eseguiamo un ulteriore controllo nel DB usando la mia funzione personale show_tables() per verificare che la tabella esista. Questo controllo ci permetterà di salvaguardarci dall'effetto di un eventuale refresh eseguito sulla pagina dopo l'eliminazione della tabella. Cercando di eliminare una tabella che non esiste causerebbe un errore nella procedura di cancellazione.
$Query = "SHOW TABLES FROM $DBName";
$all_tables = show_tables($Query);
if (in_array($table, $all_tables)) {
.................
} else {
..................
}
La procedura di eliminazione verrà chiamata con la seguente Query invocando la mia
funzione personale execute_query() se la tabella esiste.
$Query = "DROP TABLE " . $tabella;
e questa è la mia funzione
<?php
function execute_query($query) {
global $Host;
global $User;
global $Password;
global $DBName;
if (!$link = mysql_connect($Host, $User, $Password)) {
return FALSE;
}
if (!mysql_select_db($DBName, $link)) {
return FALSE;
}
$result = mysql_query($query, $link);
if (!$result) {
return FALSE;
}
mysql_close ($link);
return TRUE;
}
?>
Penso che questo, per ora, possa bastare...Alla prossima