I have created a simple database designed to accept domains and their associated TLD values:

CREATE TABLE domains(name VARCHAR(50) NOT NULL, PRIMARY KEY(name), tld ENUM('.com', '.net', '.info', '.org', '.co.uk', '.co', '.biz', '.info', '.de', '.me', '.nl', '.it', '.ch', '.li', '.us', '.name', '.ws'));

...and I now need to display a form with a field for the domain name to be entered manually, with the TLD selected from a drop-down menu. - Fine, no problem there ...only I cannot find a way to make the TLDs display within the dropdown menu.

The database connection has been tested, - works fine, - and I have spent two days putting together my own statements and mixing and matching with examples from online guides (including the MySQL documentation), eg:

mysql_connect("$s", "$u", "$p") or die(mysql_error('The Database Credentials Are A Bit Funky...'));
mysql_select_db("$d") or die(mysql_error('The Database Is Flaky, Too...'));

$query = "SELECT name,tld FROM domains";
$result = mysql_query($query) or die(mysql_error());
$dropdown = "<select name='extension'>";

while($row = mysql_fetch_assoc($result)) {
    $dropdown .= "\r\n<option value='{$row['name']}'>{$row['tld']}</option>";
    }

$dropdown .= "\r\n</select>";
echo $dropdown;

...and...

mysql_connect("$s", "$u", "$p") or die(mysql_error('The Database Credentials Are A Bit Funky...'));
mysql_select_db("$d") or die(mysql_error('The Database Is Flaky, Too...'));

$query="SELECT name, tld FROM domains";
$result = mysql_query ($query) or die(mysql_error());

echo "<select name=category value=''></option>";

while($row = mysql_fetch_array($result)){
    echo "<option value=$row[name]>$row[tld]</option>";
    }

echo "</select>";

?>

...but I still cannot get any further than an empty dropdown box.

The idea, if I can get the TLDs to display, is for a visitor to the website I am working on to be able to enter a domain and to then select a TLD from the dropdown. - Can anyone offer any help on this, please?

Recommended Answers

All 3 Replies

To retrieve all allowed enum values you have to read the table definition. Use the "show create table" statement and parse it for the enum field definition.

I replied to this earlier, but the quick reply links don't work. - Even after logging in they just display the reply until you move away from the page, but don't add the reply to the thread. - Not good.

Anyway, thanks for your reply. Unfortunately, SHOW_CREATE_TABLE is no use for what I am trying to do, as there is no way of extracting the required information from it. - Used in a script it only serves to tell you what, in my case, I already know just by checking the database files themselves.

The only way of possibly obtaining the information using SHOW_CREATE_TABLE would be a hideously ugly and complicated hack 'n' slash with a combination of string functions, trim, preg_replace, and preg_match.

If you need to access and manipulate the tld data, a more appropriate solution would be to create a tld table, and instead store a foreign key to the correct tld in your domains table.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.