dianneusa Posted April 17, 2007 Share Posted April 17, 2007 I'm new and taking a class on building php-mySQL dB, and I can't get a simple search to work. I see the form, but I get most of my php script above my form. Screen looks like: Results "; //If they did not enter a search term we give them an error if ($find == "") { echo " You forgot to enter a search term"; exit; } // Otherwise we connect to our Database mysql_connect("localhost", "root", "root") or die(mysql_error()); mysql_select_db("database_name") or die(mysql_error()); // We preform a bit of filtering $find = strtoupper($find); $find = strip_tags($find); $find = trim ($find); //Now we search for our search term, in the field the user specified $data = mysql_query("SELECT * FROM employee WHERE upper($field) LIKE'%$find%'"); //And we display the results while($result = mysql_fetch_array( $data )) { echo $result['first_name']; echo " "; echo $result['last_name']; echo " "; echo $result['employee_id']; echo " "; echo " "; } //This counts the number or results - and if there wasn't any it gives them a little message explaining that $anymatches=mysql_num_rows($data); if ($anymatches == 0) { echo "Sorry, but we can not find an entry to match your query "; } //And we remind them what they searched for echo "Searched For: " .$find; } ?> And the code from my search.php file is: <? //This is only displayed if they have submitted the form if ($searching =="yes") { echo "<h2>Results</h2><p>"; //If they did not enter a search term we give them an error if ($find == "") { echo "<p>You forgot to enter a search term"; exit; } // connect to Database mysql_connect("localhost", "XXX", "XXXX") or die(mysql_error()); mysql_select_db("new_db") or die(mysql_error()); // filtering $find = strtoupper($find); $find = strip_tags($find); $find = trim ($find); //search for our search term, in the field the user specified $data = mysql_query("SELECT * FROM employee WHERE upper($field) LIKE'%$find%'"); //display the results while($result = mysql_fetch_array( $data )) { echo $result['first_name']; echo " "; echo $result['last_name']; echo "<br>"; echo $result['employee_id']; echo "<br>"; echo "<br>"; } //This counts the number or results - and if there wasn't any a message explaining that $anymatches=mysql_num_rows($data); if ($anymatches == 0) { echo "Sorry, but we can not find an entry to match your query<br><br>"; } //what they searched for echo "<b>Searched For:</b> " .$find; } ?> Quote Link to comment Share on other sites More sharing options...
HeyRay2 Posted April 17, 2007 Share Posted April 17, 2007 First of all, welcome to the forums. If you are seeing some of your code in the browser, then you've missed a quotation mark or semicolon somehwere in your code, or you've got an issue with how your chosen text editor is formatting your code. Might I also ask what text editor you are using to write your code? Quote Link to comment Share on other sites More sharing options...
dianneusa Posted April 17, 2007 Author Share Posted April 17, 2007 I'm using html-kit as my editor. I figured out a couple of the quotes (changed these to single quotes) were causing problems. Now, however, it seems that the if statement at the top is causing problems. Notice: Undefined variable: searching in C:\Program Files\Apache Group\Apache\htdocs\NLM\search_emp.php on line 9. I guess I don't understand the hidden functions. Can anyone help? Here's my fixed code: <?php #search_emp.php $page_title = 'Search Employee'; include ('includes/header.html'); //This is only displayed if they have submitted the form if ($searching =="yes") { echo "<h2>Results</h2><p>"; //If they did not enter a search term we give them an error if ($find == "") { echo "<p>You forgot to enter a search term"; exit; } // Otherwise we connect to our Database DEFINE ('DB_USER', 'root'); DEFINE ('DB_PASSWORD', 'root'); DEFINE ('DB_HOST', 'localhost'); DEFINE ('DB_NAME', 'new_nlm'); // Make the connnection. $dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error() ); // Select the database. @mysql_select_db (DB_NAME) OR die ('Could not select the database: ' . mysql_error() ); // We preform a bit of filtering $find = strtoupper($find); $find = strip_tags($find); $find = trim ($find); //Now we search for our search term, in the field the user specified $data = mysql_query("SELECT * FROM employee WHERE upper($field) LIKE'%$find%'"); //And we display the results while($result = mysql_fetch_array( $data )) { echo $result['first_name']; echo " "; echo $result['last_name']; echo "<br>"; echo $result['employee_id']; echo "<br>"; echo "<br>"; } //This counts the number or results - and if there wasn't any it gives them a little message explaining that $anymatches=mysql_num_rows($data); if ($anymatches == 0) mysql_close(); // Close the database connection. { echo "Sorry, but we can not find an entry to match your query<br><br>"; } //And we remind them what they searched for echo "<b>Searched For:</b> " .$find; } ?> <h2>Search</h2> <form name="search" method="post" action="<?=$PHP_SELF?>"> Seach for: <input type="text" name="find" /> in <Select NAME="field"> <Option VALUE="first_name">First Name</option> <Option VALUE="last_name">Last Name</option> </Select> <input type="hidden" name="searching" value="yes" /> <input type="submit" name="search" value="Search" /> </form> <?php include ('./includes/footer.html'); ?> Quote Link to comment Share on other sites More sharing options...
tauchai83 Posted April 18, 2007 Share Posted April 18, 2007 i guess this code you got it from Internet. Am i right? The hidden function? the input type="hidden" is to pass the value for next processing purpose and make it "invisible" to user when it is passed. This variable is needed in next page, that's why we need to pass it. For your case, <input type="hidden" name="searching" value="yes" /> This means once the user has clicked the Search button and pass the value "YES" to next page. Name and Value is different. Name is to identify whereas value is the value it pass. Do you understand? Haha. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.