<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
Codice PHP:
<?php
// Se il form non è stato ancora postato lo visualizzo
if (!isset($_POST["Invia"]))
{
?>
<form name="form" id="form" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">Crea un archivio per gli articoli.
nome dell'archivio
<input name="nome_archivio" type="text" id="nome_archivio" />
<input type="submit" name="Invia" value="crea archivio"/>
</form>
Codice PHP:
<?php
}
else
{
$tabella = $_POST['nome_archivio'];
$conn = mysql_connect("localhost","root");
mysql_select_db("archivio");
$query = mysql_query("show tables from archivio like '$tabella' ");
// Con questa query verifico se esiste già nel db una tabella con il nome che vorrebbe inserire l'utente
$num = mysql_num_rows($query);
if ($num > 0)
{
// Se il numero è maggiore di 0 significa che il nome non è disponibile
echo "Esiste già una tabella con questo nome
";
echo "<a href = javascript:history.back()>Inserisci un nome diverso</a>";
}
else
{
// Altrimenti. Eseguo la query di creazione tabella
$query2 = mysql_query("CREATE TABLE $tabella (
id int(5) NOT NULL auto_increment,
titolo varchar(100) NOT NULL default '',
anteprima varchar(255) NOT NULL default '',
testo text NOT NULL,
inizio int(10) NOT NULL default '0',
fine varchar(10) NOT NULL default '',
foto varchar(255) NOT NULL default '',
autore_id int(5) NOT NULL default '0',
controllo set('si','no') NOT NULL default 'no',
PRIMARY KEY (id)
) TYPE=MyISAM;") or die ("Impossibile creare la tabella " .mysql_error() );
if ($query2)
{
// Visualizzo il messaggio che la query è andata a buon fine
echo "La tabella $tabella è stata creata
";
echo "<a href = \"$_SERVER[PHP_SELF]\">Torna alla pagina di inserimento</a>";
}
}
}
?>
</body>
</html>
Ciao. Il codice che ti ho postato risolve il problema che ponevi.
Non sono un esperto di progettazione di db ma a quanto ho capito con questo sistema ti crei tot tabelle con nomi differenti ma che hanno tutte la stessa struttura. Non mi sembra un buon metodo. Forse dovresti ripensare la logica del tuo db.