I need to make a web page in php and search a my SQL database. For data in three the field. And right back to the database.
Printable View
I need to make a web page in php and search a my SQL database. For data in three the field. And right back to the database.
If you don't post any code for people to look through then your threads are not going to be answered.
Do you know who to create a webpage?
yes html
Code:------------ 1- Filename: config.php ------------ ------------ 1- Filename: search.php ------------
Search Word:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\web\hi.php on line 31
Code:------------
1- Filename: config.php
------------
<?php
//define your database informations
$dbhost="localhost";
$dbusername="root";
$dbpassword="crocker";
$dbname="databasename";
?>
------------
1- Filename: search.php
------------
<?php
include("config.php");
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db);
// The form:
?>
<form method="POST" action="">
Search Word: <input type="text" name="query">
<input type="SUBMIT" value="Search!">
</form>
<?
// PHP Search Script
$result = mysql_query("select * from Table_Name WHERE column1 LIKE '%$query%' OR column2 LIKE '%$query%'", $db);
while(list($column1, $column2)=mysql_fetch_array($result)){
echo "Result: $column1, $column2 <br />";
}
?>
You have not declared your variable "query".
Also you have not set a value for "action" in your form.
You could use:
PHP Code:action="$PHP_SELF"
or
action="http://www.yoursite.com/somepage.php"
did not work for me.
Where have you declared this variable?Quote:
Originally Posted by lintz
I got the form http://www.phpfreaks.com/quickcode/B...iglight=search
Have you changed the database variables to relate to your database?
Also i doubt you have a table called "Table_Name" and fields called "column1" and "column2" :confused:
EDIT: You have changed the db variables.....my mistake.
no
table called "name"
fields called "FirstName" and LastName
OK. Replace the name of the table and field names in the example with yours.
I am new to php.
how?
PHP Code:$result = mysql_query("select * from name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
Code:------------
1- Filename: config.php
------------
<?php
//define your database informations
$dbhost="localhost";
$dbusername="root";
$dbpassword="crocker";
$dbname="school";
?>
------------
1- Filename: search.php
------------
<?php
include("config.php");
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db);
// The form:
?>
<form method="POST" action="brb.no-ip.info">
Search Word: <input type="text" name="query">
<input type="SUBMIT" value="Search!">
</form>
<?
// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
to test it goto http://bob5731.no-ip.info/web/search.php
Object not found! error.
It will have to do with action="brb.no-ip.info". You need to specify a location on your site for the form resutls to goto. eg. action="brb.no-ip.info/resutls.php
Object not found!
The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.
Error 404
bob5731.no-ip.info
11/07/05 22:36:44
Apache/2.0.54 (Win32) mod_ssl/2.0.54 OpenSSL/0.9.8 PHP/5.0.5 mod_autoindex_color
Give me a couple of mins and I'll have a working example.
ok!!!
Here you go. This works on my machine :)
This goes in your search.php file. Leave config.php alone if all variables are correct.
I hope you rate my post after this :D
PHP Code:<?php
include("config.php");
$query = $_POST['query'];
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db) or die('error connection to DB '.mysql_error());
// The form:
if (!isset($_POST['submit']) ) { // if form hasn't been submitted to itself then show form
?>
<form method="POST" action="<?php echo $PHP_SELF?>">
Search Word: <input type="text" name="query">
<input type="SUBMIT" name="submit" value="Search!">
</form>
<?
}
else {
// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
}
}
?>
/*$dbhost="localhost"; $dbusername="root"; $dbpassword="crocker"; $dbname="school"; */
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\xampp\htdocs\web\search.php on line 12
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\xampp\htdocs\web\search.php on line 13
error connection to DB Access denied for user 'ODBC'@'localhost' (using password: NO)
have you got php, mysql and apache installed on your machine?
It works for me now.
Now how do add data to the mySQL database.
PHP Code:$add_item = mysql_query("INSERT into name VALUES('Will', 'Perdue')", $db);
$add_item = mysql_query("INSERT into name VALUES('John', 'Paxson')", $db);
//etc...
Code:<?php
//define your database informations
$dbhost="localhost";
$dbusername="root";
$dbpassword="crocker";
$dbname="school";
?>
<?php
include("config.php");
$query = $_POST['query'];
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db) or die('error connection to DB '.mysql_error());
// The form:
if (!isset($_POST['submit']) ) { // if form hasn't been submitted to itself then show form
?>
<form method="POST" action="<?php echo $PHP_SELF?>">
Search Word: <input type="text" name="query">
<input type="SUBMIT" name="submit" value="Search!">
</form>
<?
}
else {
// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
}
$add_item = mysql_query("INSERT into name VALUES('bob', 'Perdue')", $db);
$add_item = mysql_query("INSERT into name VALUES('brandon', 'Paxson')", $db);
}
?>
It will be for gift card.
http://bob5731.no-ip.info/web/untitled.BMP
So whats wrong with it?
I have no code.
I've never made a gift card, so, neither do I. ave a go at writing it yourself and when you get a problem, post here ;)
It will be gift card db.
Use my example and then modify it to your needs for the gift card.
Is not work for me.
Code:$add_item = mysql_query("INSERT into name VALUES('Will', 'Perdue')", $db);
$add_item = mysql_query("INSERT into name VALUES('John', 'Paxson')", $db);
Code:<?php
//define your database informations
$dbhost="localhost";
$dbusername="root";
$dbpassword="crocker";
$dbname="school";
?>
<?php
include("config.php");
$query = $_POST['query'];
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db) or die('error connection to DB '.mysql_error());
// The form:
if (!isset($_POST['submit']) ) { // if form hasn't been submitted to itself then show form
?>
<form method="POST" action="resutls.php"<?php echo $PHP_SELF?>">
Search Word: <input type="text" name="query">
<input type="SUBMIT" name="submit" value="Search!">
</form>
<?
}
else {
// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
}
$add_item = mysql_query("INSERT into name VALUES('bob', '$FirstName')", $db);
$add_item = mysql_query("INSERT into name VALUES('brandon', '$FirstName')", $db);
}
?>
OK, as a general rule when some code you're working with doesn't do what you want it returns an error. To help people help you fix the error you should post the code you're working with along with any error messages.
Please post the error message(s) when you attempt to add records to your table.
I get no errors.
It returns a blank page.
You didn't say you had more then 2 fields in your table :(
You need to add an item for each field in your table.
eg.
PHP Code:$add_item = mysql_query("INSERT into name VALUES('', 'John', '', 'Paxson', '', '', '', '', '', '', '', )", $db) or die(''.mysql_error());
//mysql_error() will tell you where your error is (if there is one)
how to display basic search results mysql using php.
Look at post #20
wood help I gave you the files.
No, post #20 gives you a working search script.
What part is not working?
<form method="POST" action="resutls.php">
Again, you need to let ppl know what error(s) are displayed or what is supposed to occur within your code that isn't.
This tells ppl nothing of what the problem is - <form method="POST" action="resutls.php">
Code:<?php
$hostname_logon = "localhost" ;
$database_logon = "school" ;
$username_logon = "root" ;
$password_logon = "crocker" ;
//open database connection
$connections = mysql_connect($hostname_logon, $username_logon, $password_logon) or die ( "Unabale to connect to the database" );
//select database
mysql_select_db($database_logon) or die ( "Unable to select database!" );
//specify how many results to display per page
$limit = 10;
// Get the search variable from URL
$var = @$_GET['q'] ;
//trim whitespace from the stored variable
$trimmed = trim($var);
//separate key-phrases into keywords
$trimmed_array = explode(" ",$trimmed);
// check for an empty string and display a message.
if ($trimmed == "") {
$resultmsg = "<p>Search Error</p><p>Please enter a search...</p>" ;
}
// check for a search parameter
if (!isset($var)){
$resultmsg = "<p>Search Error</p><p>We don't seem to have a search parameter! </p>" ;
}
// Build SQL Query for each keyword entered
foreach ($trimmed_array as $trimm){
// EDIT HERE and specify your table and field names for the SQL query
$query = "SELECT * FROM name WHERE $FirstName LIKE \"%$trimm%\" OR $$LastName LIKE \"%$trimm%\" OR field3 LIKE \"%$trimm%\" ORDER BY $FirstName DESC" ;
// Execute the query to get number of rows that contain search kewords
$numresults=mysql_query ($query);
//$row_num_links_main =mysql_num_rows ($numresults);
// next determine if 's' has been passed to script, if not use 0.
// 's' is a variable that gets set as we navigate the search result pages.
if (empty($s)) {
$s=0;
}
// now let's get results.
$query .= " LIMIT $s,$limit" ;
$numresults = mysql_query ($query) or die ( "Couldn't execute query" );
$row= mysql_fetch_array ($numresults);
//store record id of every item that contains the keyword in the array we need to do this to avoid display of duplicate search result.
do{
$adid_array[] = $row[ 'fieldid' ];
}while( $row= mysql_fetch_array($numresults));
} //end foreach
if($row_num_links_main == 0 && $row_set_num == 0){
$resultmsg = "<p>Search results for:" . $trimmed ."</p><p>Sorry, your search returned zero results</p>" ;
}
//delete duplicate record id's from the array. To do this we will use array_unique function
$tmparr = array_unique($adid_array);
$i=0;
foreach ($tmparr as $v) {
$newarr[$i] = $v;
$i++;
}
// now you can display the results returned. But first we will display the search form on the top of the page
?>
<form action="search.php" method="get" name="search">
<div align="center">
<input name="q" type="text" value=" <?php echo $q; ?> " size="15">
<input name="search" type="submit" value="Search">
</div>
</form>
<?php
// display what the person searched for.
if( isset ($resultmsg)){
echo $resultmsg;
exit();
}else{
echo "Search results for: " . $var;
}
foreach($newarr as $value){
// EDIT HERE and specify your table and field names for the SQL query
$query_value = "SELECT * FROM tablename WHERE fieldid = '$value'";
$num_value=mysql_query ($query_value);
$row_linkcat= mysql_fetch_array ($num_value);
$row_num_links= mysql_num_rows ($num_value);
//now let's make the keywods bold. To do that we will use preg_replace function.
//Replace field
$titlehigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'field1' ] );
$linkhigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'field2' ] );
$linkdesc = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'field3' ] );
foreach($trimmed_array as $trimm){
if($trimm != 'b' ){
$titlehigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $titlehigh);
$linkhigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkhigh);
$linkdesc = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkdesc);
}
//end highlight
?>
<p>
<?php echo $titlehigh; ?><br>
<?php echo $linkhigh; ?><br>
<?php echo $linkhigh; ?>
</p>
<?php
} //end foreach $trimmed_array
if($row_num_links_main > $limit){
// next we need to do the links to other search result pages
if ($s>=1) { // do not display previous link if 's' is '0'
$prevs=($s-$limit);
echo "<div align='left'><a href='$PHP_SELF?s=$prevs&q=$var&catid=$catid'>Previous " .$limit. "</a></div>";
}
// check to see if last page
$slimit =$s+$limit;
if (!($slimit >= $row_num_links_main) && $row_num_links_main!=1) {
// not last page so display next link
$n=$s+$limit;
echo "<div align='right'><a href='$PHP_SELF?s=$n&q=$var&catid=$catid'>Next " .$limit. "</a></div>";
}
}
} //end foreach $newarr
?>
I give up :cry:
did you goto http://bob5731.no-ip.info/web/search.php
You need to upload the file "results.php" to bob5731.no-ip.info/web
Also your search script (search.php) has 2 forms on it.
Code:<form name="form1" method="post" action="results.php">
<form method="POST" action="resutls.php">
Search Word: <input type="text" name="query">
<input type="SUBMIT" value="Search!">
</form>
You need to upload the file "results.php" to bob5731.no-ip.info/web
did it.
And?
It returns a blank page
The page isn't producing any output. My guess is that there is a fatal error killing the script. Try putting:
At the top of your script. Then, see what output you get.PHP Code:error_reporting(E_ALL);
or the names you're searching for aren't in your db.
Maybe add this if no matches are found.
PHP Code:// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
if (mysql_num_rows($result) == "0") {
echo "No results found!";
}
else
{
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
}
}
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\web\search.php on line 23
Warning: Division by zero in C:\Program Files\xampp\htdocs\web\search.php on line 30
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Code:<?php
//define your database informations
$dbhost="localhost";
$dbusername="root";
$dbpassword="crocker";
$dbname="school";
?>
<?php
include("config.php");
$query = $_POST['query'];
// connect to db
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$db) or die('error connection to DB '.mysql_error());
// The form:
if (!isset($_POST['submit']) ) { // if form hasn't been submitted to itself then show form
?>
<form method="POST" action="<?php echo $PHP_SELF?>">
Card #: <input type="text" name="query"><BR><BR>
Total add to card: <input type="text" name="query"><BR><BR>
Total on card: <input type="text" name="query">
<input type="SUBMIT" name="submit" value="Search!">
</form>
<?
}
lse {
// PHP Search Script
$result = mysql_query("select * from Name WHERE FirstName LIKE '%$query%' OR LastName LIKE '%$query%'", $db);
while(list($FirstName, $LastName)=mysql_fetch_array($result)){
echo "Result: $FirstName, $LastName <br />";
}
$add_item = mysql_query("INSERT into name VALUES('bob', '$FirstName')", $db);
$add_item = mysql_query("INSERT into name VALUES('brandon', '$FirstName')", $db);
}
?>
Your query to add names to your database won't work.....check back at post #37.
Also in your form you need to give each field a different name as you currently have them all as "query"
Code:Card #: <input type="text" name="query"><BR><BR>
Total add to card: <input type="text" name="query"><BR><BR>
Total on card: <input type="text" name="query">
I did not know php can fix my file for me.
it can't, you need to make the corrections.
y not?
Just for clarification. Can you post search.php and results.php?