I think the problem with the 'both' option is that when you select 'both' on the form, gender is set to '' and not to 'both'.
Murtan
Practically a Master Poster
671 posts since May 2008
Reputation Points: 344
Solved Threads: 116
BTW, just to give you an idea of where Murtan is talking about (not very obvious) it is the following line of the second file where value=
<input type = "radio" name = "gender" value = ""/>Both
As you can see there is no value assigned to that field and that is why it will appear as empty in the database.
cwarn23
Occupation: Genius
3,033 posts since Sep 2007
Reputation Points: 413
Solved Threads: 259
<?php
// MySQL Connection Information
$server = "localhost";
$username = "sharlene";
$password = "";
$dbname = "baby_names";
// MySQL Connect String
$connection = mysql_connect($server,$username,$password) or die("Can't Connect to Mysql Server:
".mysql_error());
// Select the database
mysql_select_db($dbname) or die("Can't connect to database: ".mysql_error());
$gender = mysql_real_escape_string($_POST['gender']);
$meaning = mysql_real_escape_string($_POST['meaning']);
$name = mysql_real_escape_string($_POST['name']);
$origin = mysql_real_escape_string($_POST['origin']);
if($gender) {
$whereArr[] = "gender = '" . $gender . "' ";
}
if($name) {
$whereArr[] = "name LIKE '" . $name . "%'";
}
if($meaning) {
$whereArr[] = "meaning LIKE '%" . $meaning . "%'";
}
if($origin) {
$whereArr[] = "origin = '" . $origin . "' ";
}
if(count($whereArr)) {
$where = @implode(" AND ", $whereArr);
$where = ' WHERE '.$where;
}
$sql = "SELECT * FROM names $where";
/*
if ($gender == 'both') { // no specific gender
if ($origin == 'any') { // no specific origin
$sql = 'select * from names';
else { // an origin was specified
$sql = "select * from names where origin = '".$origin."'";
}
else { // a gender was specified
if ($origin == 'any') { // no specific origin
$sql = "select * from names where gender ='".$gender."'";
else { // an origin was also specified
$sql = "select * from names where origin = '".$origin."' and gender ='".$gender."'";
}
/**/
//execute SQL query and get result
$sql_result = mysql_query($sql, $connection) or die(mysql_error());
?>
Name
Gender
Origin
Meaning
<?php
// Loop through the data set and extract each row into it's own variable set
while ($row = mysql_fetch_array($sql_result))
{
//extract($row);
?>
<?php echo $row['name'];?>
<?php echo $row['gender'];?>
<?php echo $row['origin'];?>
<?php echo $row['meaning'];?>
<?php
}
?>
nav33n
Purple hazed!
4,465 posts since Nov 2007
Reputation Points: 524
Solved Threads: 356
I think nav33n (who re-posted your code) was trying to encourage you to use code tags.
Please use code tags when posting code. For more information, click here .
When posting php code, please use php code tags
[code=php]
// Your code here
[/code]
Murtan
Practically a Master Poster
671 posts since May 2008
Reputation Points: 344
Solved Threads: 116
hey... y u copied... and pasted without any comments (my code)
:icon_rolleyes:
nav33n
Purple hazed!
4,465 posts since Nov 2007
Reputation Points: 524
Solved Threads: 356
hey... y u copied... and pasted without any comments (my code)
It appears he didn't really copy your code but instead quoted your post.
cwarn23
Occupation: Genius
3,033 posts since Sep 2007
Reputation Points: 413
Solved Threads: 259
sorry people - i thought i did use the tags but anyway thank you all for your replies - will play with it tomorrow
@phpNewbie, We aren't talking about you. Vinothkumarc didn't use[code] tags. Infact, I appreciate you for using code tags. :)
nav33n
Purple hazed!
4,465 posts since Nov 2007
Reputation Points: 524
Solved Threads: 356
Hello Newbie. You don't need to do so much. Really PHP script is simple to write. all you need is make your code like a lawyer builds a case. Let's see if I can use your code to explain somethings to you but right away, I have an issue with a script too. See you in about 10 hours time.
Feel cool, PHP is friendly.
emiola
Junior Poster in Training
51 posts since Jul 2008
Reputation Points: 10
Solved Threads: 1