Avatar billede gizmo234 Nybegynder
22. september 2005 - 15:57 Der er 7 kommentarer

Oprette ny tabel i database + html fil fra hjemmeside

Hej.
Jeg har et, i mine øjne, lidt større problem.

Jeg skal have gjort, så man som admin på en hjemmeside kan gå ind og skrive i et form tekstfelt "Navnet på det man vil have", og så trykke ok. Så skal siden lave en ny tabel i databasen med de rows som jeg har her:

CREATE TABLE `HER!` (
  `id` int(11) NOT NULL auto_increment,
  `dato` date NOT NULL default '0000-00-00',
  `navn` varchar(100) NOT NULL default '',
  `mail` varchar(100) NOT NULL default '',
  `resultat` varchar(100) NOT NULL default '',
  `version` varchar(100) NOT NULL default '',
  `billede` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

Der hvor der står "Her" (under navnet på den nye tabel), skal den så indsætte det ord som brugeren skrev i form tekstfeltet.

Udover det, skal der også blive oprettet en html fil, som bare hedder det samme som tabellen kommer til at hedde. Er det overhovedet muligt at få PHP til det?
Avatar billede jakobdo Ekspert
22. september 2005 - 17:26 #1
Hvis du har en form, med input felt hvor name="her"
Så kan du på selve siden lave:

mysql_query("CREATE TABLE '".$_POST['her']."' (
  `id` int(11) NOT NULL auto_increment,
  `dato` date NOT NULL default '0000-00-00',
  `navn` varchar(100) NOT NULL default '',
  `mail` varchar(100) NOT NULL default '',
  `resultat` varchar(100) NOT NULL default '',
  `version` varchar(100) NOT NULL default '',
  `billede` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;");
Så skulle tabellen blive oprettet.
At oprette en html fil, kan du gøre med:

$filename = $_POST['her'] . ".html";
$somecontent = "<html><head><title>".$_POST['her']."</title></head><body>Hej ".$_POST['her']."</body></html>\n";

if (!$handle = fopen($filename, 'w'))
{
    echo "Cannot open file ($filename)";
    exit;
}

// Write $somecontent to our opened file.
if (fwrite($handle, $somecontent) === FALSE)
{
    echo "Cannot write to file ($filename)";
    exit;
}
 
echo "Success, wrote ($somecontent) to file ($filename)";
 
fclose($handle);
Avatar billede gizmo234 Nybegynder
25. september 2005 - 18:49 #2
Det fungerer 50 % :)

Den opretter filen, og den skriver i filen, men den vil ikke oprette den nye tabel, og den laver filen igen, hvis man opdaterer siden, det skal den jo først gøre når man trykker "OK" på form knappen. Hvad er der galt:

<form name="her" method="post" action="">
  <p>Grafikkort navn:
    <input name="her" type="text" id="table">
  </p>
  <p>
    <input type="submit" name="Submit" value="Ok">
  </p>
<?
$connection = mysql_connect("localhost","*****","*****");
mysql_select_db("*****", $connection);

mysql_query("CREATE TABLE '".$_POST['her']."' (
  `id` int(11) NOT NULL auto_increment,
  `dato` date NOT NULL default '0000-00-00',
  `navn` varchar(100) NOT NULL default '',
  `mail` varchar(100) NOT NULL default '',
  `resultat` varchar(100) NOT NULL default '',
  `version` varchar(100) NOT NULL default '',
  `billede` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;");


$filename = $_POST['her'] . ".html";
$somecontent = "<html><head><title>".$_POST['her']."</title></head><body>Hej ".$_POST['her']."</body></html>\n";

if (!$handle = fopen($filename, 'w'))
{
    echo "Cannot open file ($filename)";
    exit;
}

// Write $somecontent to our opened file.
if (fwrite($handle, $somecontent) === FALSE)
{
    echo "Cannot write to file ($filename)";
    exit;
}
 
echo "Success, wrote ($somecontent) to file ($filename)";
 
fclose($handle);
?>
</form>
Avatar billede jakobdo Ekspert
25. september 2005 - 21:06 #3
Ret:
mysql_query("CREATE TABLE '".$_POST['her']."' (
  `id` int(11) NOT NULL auto_increment,
  `dato` date NOT NULL default '0000-00-00',
  `navn` varchar(100) NOT NULL default '',
  `mail` varchar(100) NOT NULL default '',
  `resultat` varchar(100) NOT NULL default '',
  `version` varchar(100) NOT NULL default '',
  `billede` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;");

til:
$query = mysql_query("CREATE TABLE '".$_POST['her']."' (
  `id` int(11) NOT NULL auto_increment,
  `dato` date NOT NULL default '0000-00-00',
  `navn` varchar(100) NOT NULL default '',
  `mail` varchar(100) NOT NULL default '',
  `resultat` varchar(100) NOT NULL default '',
  `version` varchar(100) NOT NULL default '',
  `billede` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;");

if(!$query)
{
echo mysql_error();
}
Avatar billede gizmo234 Nybegynder
07. november 2005 - 22:50 #4
Faktisk det samme emne som det du har svaret mig i i det andet indlæg :) Du må selv bestemme om du vil have points her også, hvis du vil, så kom med et svar :)
Avatar billede jakobdo Ekspert
07. november 2005 - 22:53 #5
Var det emnet med grafikkortet?
Avatar billede gizmo234 Nybegynder
05. april 2006 - 13:06 #6
Ja, det var.
Avatar billede jakobdo Ekspert
05. april 2006 - 13:16 #7
Så får du et svar!
Er dit problem blevet løst?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester