Greetings...
The following is the _third_ part of a script found in Julie Meloni's book
"PHP Essentials" on page 118.
The script dynmically generates a form box of field names, field types and
field sizes for a mysql table depending on what the user chooses.
My question is about syntax or logic in the following snippet:
The variables:
$field_name
$field_type
$field_length
are carried over from the previous script.
.............................................
$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .= "$field_name[$i] $field_type[$i]";
if ($field_length[$i] != "") {
$sql .= " ($field_length[$i]),";
} else {
$sql .= ",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";
...........................................
My question is about the snippet:
.............
if ($field_length[$i] != "") {
$sql .= " ($field_length[$i]),";
} else {
$sql .= ",";
}
......................
In that it would say that if the field_length variable is not empty then add
the (number) and comma to the sql statement
If it is empty, then just add a comma.
The question:
Is the reasoning that a comma *must* be added since this is _within_ a loop?
As in:
CREATE TABLE chairs (
id INT(5),
item VARCHAR(50),
desc TEXT ,
price FLOAT , // common should be deleted but there is no way of knowing
this within the loop.
// that's why after the loop closes there is a
substr() function to delete the comma.
);
And that after the loop ends, the comma is then deleted using the substr()
function to complete the sql statement.
TIA,
Tony Ritter
..........................................................................
The complete script:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Create a Database Table: Step 3</TITLE>
<style>
p {font-family:arial;
font-size: .75em;}
input {border: 1px solid black;}
th {font-family:arial;
font-size: .75em;
color:red;}
h2 {font-family:arial;
font-size: 1em;}
</style>
</HEAD>
<BODY>
<h2>Adding <?php echo "$table_name"; ?> Table</h2>
<?
$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .= "$field_name[$i] $field_type[$i]";
if ($field_length[$i] != "") {
$sql .= " ($field_length[$i]),";
} else {
$sql .= ",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";
$connection = mysql_connect("","","")
or die("Couldn't connect to server.");
$db = mysql_select_db("database", $connection)
or die("Couldn't select database.");
$sql_result = mysql_query($sql,$connection)
or die("Couldn't execute query.");
if (!$sql_result) {
echo "<P>Couldn't create table!";
} else {
echo "<P>$table_name [table] has been created!";
}
?>
</BODY>
</HTML>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php