Need help with insert form
Hi,
I have the insert form below which works just fine except for the if else condition.
If the name already exists, i'd like it to echo name already exists.
I know that I am doing something wrong. Can someone help?
Thanks much !
PHP Code:
if(isset($_REQUEST['add_group'])) { $result_content = mysql_query ("SELECT * FROM $table_group WHERE first_name = '" . $first_name. "' limit 1 "); if ( mysql_num_rows($result_content)==0){ $sql="INSERT INTO $table_group (first_name, last_name)VALUES('$first_name', '$last_name')"; }else { echo "Name already exists"; } $result=mysql_query($sql); // if successfully insert data into database, displays message "Successful". if($result){ echo "Successful"; echo "<BR>"; echo "<a href='insert.php'>Back to main page</a>"; } else { echo "ERROR"; } } // close connection mysql_close(); ?> <table width="300" border="0" align="center" cellpadding="0" cellspacing="1"> <tr> <td><form name="form1" method="post" action="insertTest.php"> <?php if (isset( $data_content [ "first_name" ]) and $data_content [ "first_name" ] != '' and !isset( $_POST [ 'first_name' ])) { $first_name = $data_content [ "first_name" ]; } elseif (isset( $_POST [ 'first_name' ])) { $first_name = $_POST [ 'first_name' ]; } else { $first_name = '' ; } $first_name = htmlentities ( stripslashes ( $first_name ), ENT_QUOTES , $character_set ); if (isset( $data_content [ "last_name" ]) and $data_content [ "last_name" ] != '' and !isset( $_POST [ 'last_name' ])) { $last_name = $data_content [ "last_name" ]; } elseif (isset( $_POST [ 'last_name' ])) { $last_name = $_POST [ 'last_name' ]; } else { $last_name = '' ; } $last_name = htmlentities ( stripslashes ( $last_name ), ENT_QUOTES , $character_set ); ?> <table width="100%" border="0" cellspacing="1" cellpadding="3"> <tr> <td colspan="3"><strong>Insert Data Into mySQL Database </strong></td> </tr> <tr> <td width="71">First name</td> <td width="6">:</td> <td width="301"><input name="first_name" type="text" id="first_name" value="<?php echo $first_name ?> "></td> </tr> <tr> <td>Lastname</td> <td>:</td> <td><input name="last_name" type="text" id="last_name" value="<?php echo $last_name ?> "></td> </tr> <tr> <td colspan="3" align="center"><input type="submit" name="add_group" value="Submit"></td> </tr> </table> </form> </td> </tr> </table>
Last edited by fagin; 02-22-2013 at 01:51 PM .
I am not sure what the problem here. But, looking at the code, check this lines:
Code:
if ( mysql_num_rows($result_content)==0){
$sql="INSERT INTO $table_group (first_name, last_name)VALUES('$first_name', '$last_name')"; }else { echo "Name already exists"; }
$result=mysql_query($sql);
the line:
Code:
$result=mysql_query($sql);
is outside the "if then else" loops which means, the query is always executed.
This is a problem if name already exists, because the string $sql is empty.
So, try moving the code inside the if then loop.
Good luck!
Solved
thanks for your response. talking about putting it in the loop got me to thinking...and here is the code that works.
I added these also:
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
PHP Code:
if(isset($_REQUEST['add_group'])) {
// Get values from form
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$result_content = mysql_query ("SELECT * FROM $table_group WHERE first_name = '" . $first_name. "' limit 1 ");
if ( mysql_num_rows($result_content) == 0) {
$sql = "INSERT INTO $table_group (first_name, last_name) VALUES ('$first_name', '$last_name')";
} else {
echo "Name already exists";
}
$result = mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result) {
echo "Successful<br />\n
<a href='insert.php'>Back to main page</a>";
} else {
echo "ERROR";
}
}
// close connection
mysql_close();
?>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td>
<form name="form1" method="post" action="test.php">
<?php
if(isset( $data_content [ "first_name" ]) && $data_content [ "first_name" ] != '' && !isset( $_POST [ 'first_name' ])) {
$first_name = $data_content [ "first_name" ];
} elseif(isset( $_POST [ 'first_name' ])) {
$first_name = $_POST [ 'first_name' ];
} else {
$first_name = '' ;
}
$first_name = htmlentities ( stripslashes ( $first_name ), ENT_QUOTES , $character_set );
if(isset( $data_content [ "last_name" ]) && $data_content [ "last_name" ] != '' && !isset( $_POST [ 'last_name' ])) {
$last_name = $data_content [ "last_name" ];
} elseif(isset( $_POST [ 'last_name' ])) {
$last_name = $_POST [ 'last_name' ];
} else {
$last_name = '' ;
}
$last_name = htmlentities ( stripslashes ( $last_name ), ENT_QUOTES , $character_set );
?>
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td colspan="3">
<strong>Insert Data Into mySQL Database </strong>
</td>
</tr>
<tr>
<td width="71">First name</td>
<td width="6">:</td>
<td width="301"><input name="first_name" type="text" id="first_name" value="<?php echo $first_name ?> "></td>
</tr>
<tr>
<td>Lastname</td>
<td>:</td>
<td><input name="last_name" type="text" id="last_name" value="<?php echo $last_name ?> "></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" name="add_group" value="Submit"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Bookmarks