Jump to content

Create MYSQL table from html form using PHP


aero4x

Recommended Posts

Hi, I just recently learned some basic PHP and MYSQL in hopes of creating a database driven website. Basically, I'm trying to let users search for something. If a MYSQL table allready exists with a name equal to their search term then great, I know what to do from there, but if no table exists allready, then i would like to create one using their search term as the name of the table. My code looks something like this...

[code]
<?php
mysql_connect ("localhost", "username", "password") or die(mysql_error());
mysql_select_db ("DB_name") or die(mysql_error());

$searchTerm = $_POST['searchTerm'];

$createTable = "CREATE TABLE " . $searchTerm . "(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), age INT)";

$mysqlString = "INSERT INTO " . $searchTerm . " (name, age) VALUES('" . $someVar . "', '" . $anotherVar . "' )";

mysql_query($mysqlString) or mysql_query($createTable) or die(mysql_error());
[/code]

But whenever I use a search term that is not allready in the database i get the following error.

[code]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test( id INT NOT NULL AUTO_I' at line 1
[/code]

Even more wierd to me is that whatever the search term I use is displayed as [b]bold[/b] in my error message. Even when I add some random string onto the search term variable, only the part that was actually part of the HTML form is bold. My current theory is that for some reason the HTML forms send some wierd type of a string that doesnt make MYSQL happy but I have no idea. I'm so confused. Any help would be greatly appreciated. Thanks in advance!
Link to comment
Share on other sites

[!--quoteo(post=372445:date=May 8 2006, 06:34 PM:name=thorpe)--][div class=\'quotetop\']QUOTE(thorpe @ May 8 2006, 06:34 PM) [snapback]372445[/snapback][/div][div class=\'quotemain\'][!--quotec--]
My biggest question is, why do you want to do this?
[/quote]

I'm trying to create a site that is largely based on user generated content, so if they search for something that doesn't allready exist, then I would like to make it exist :)
Link to comment
Share on other sites

I also dont quite understand the need for this, but try this anyway.

[code]$createTable = "CREATE TABLE '$searchTerm' (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), age INT)";[/code]
Link to comment
Share on other sites

From what I understand, database normalization refers to eliminating redundant data. Searches will be very specific so its not like 2 different users will search for "the boy" and "boy the" and mean the same thing, so I'm not so concerned about redundant data at this point. If I'm misunderstanding what your saying then please correct me, like I said, I'm new to PHP and MYSQL. If anyone else out there knows what im doing wrong with my code, please tell me. Thanks.
Link to comment
Share on other sites

[!--quoteo(post=372697:date=May 9 2006, 02:51 PM:name=sanfly)--][div class=\'quotetop\']QUOTE(sanfly @ May 9 2006, 02:51 PM) [snapback]372697[/snapback][/div][div class=\'quotemain\'][!--quotec--]
Oops, Try this

[code]$createTable = "CREATE TABLE $searchTerm (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), age INT)";[/code]
[/quote]


No luck, same problem, but thanks for the suggestion.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.