Jump to content

isign4jc

Members
  • Posts

    10
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

isign4jc's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. i tried to modify my text on the top because i meant to say that i wanted the drop down to be by city, not by church name.
  2. I have been going crazy for the past few days trying to figure out what seem to be such a simple code. What I want is a website visitor to be able to choose a church name from a drop down menu and when that church is chosen (and they press "submit"), the details (church name, phone, zip code, city name) will be displayed. I have been messing with this code and as of right now when you click "submit", all the records from the database show instead of just the one(s) chosen for that particular church's name. <?php error_reporting(E_ALL); if (!isset($_POST['Submit'])) { // form not submitted ?> <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <?php require_once ('../../../../mysql_connect2.php'); // Connect to the db. $res=mysql_query("SELECT * FROM dbtry order by city") or die(mysql_error()); echo "<select name=dropdown>"; while($row=mysql_fetch_assoc($res)) { echo "<option value=$row[user_id]>$row[city]</a></option>"; } echo "</select>"; ?> <input type="Submit" value="Submit" name="Submit"> </form> <?php } else { // form submitted // set server access variables require_once ('../../../../mysql_connect2.php'); // Connect to the db. $dropdown = empty($_POST['dropdown'])? die ("ERROR: Select from dropdown") : mysql_escape_string($_POST['dropdown']); // Open Connection //Create Query $query = "SELECT * FROM dbtry WHERE $dropdown='$dropdown'" or die (mysql_error()); $result = mysql_query($query) or die (mysql_error()); $num=mysql_numrows($result); echo "<b><center>Database Output</center></b><br><br>"; $i=0; while ($i < $num) { $church_name=mysql_result($result,$i,"church_name"); $city=mysql_result($result,$i,"city"); $zip=mysql_result($result,$i,"zip"); $p=mysql_result($result,$i,"phone"); echo "$church_name, $city, $zip, $p "; $i++; } } ?>
  3. I posted a question last week about a search engine script I was working on that would use php to search my mysql database. Once my problems with my own script started to snowball a bit, I decided I may need to just go with a pre-made search engine that I can just implement into my site. I tried using google's search engine, but it did not seem to recognize the pages on my site that output text from my database using php. Does anyone know of a free or cheap search engine that would be able to do this?
  4. Thanks for trying to help. I'm guessing you're second solution would have worked as well, but I looked at my script again and realized that the entirety of the snippet that i posted was inside another larger loop that was including the whole search script. Once I placed it outside as you suggested, while being careful not to delete the necessary closing tags, it worked! Now i'm having another problem. When I search two words, and both words are contained within one search result, it shows that result twice, matching both words individually. I may be asking for too much help with this one, because I feel like it must be a bigger issue. I'll post my super long search code here in case anyone can help me out with this second issue. <?php //This is a working script //Make sure to go through it and edit database table filelds that you are seraching //This script assumes you are searching 3 fields require_once ('path for my mysql connect file goes here'); // Connect to the db. //specify how many results to display per page $limit = 2; // 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>Please enter a search...</p>" ; } // check for a search parameter if (!isset($var)){ $resultmsg = "<p>Please enter a search...</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 DISTINCT page_id, heading, SUBSTRING(main_text,1,75) AS main_text FROM content WHERE heading LIKE \"%$trimm%\" OR main_text LIKE \"%$trimm%\" ORDER BY heading 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{ //EDIT HERE and specify your field name that is primary key $adid_array[] = $row[ 'page_id' ]; }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> <p><?php // display what the person searched for. if( isset ($resultmsg)){ echo $resultmsg; exit(); }else{ echo "Search results for: " . $var; } ?> </p> <?php foreach($newarr as $value){ // EDIT HERE and specify your table and field names for the SQL query $query_value = "SELECT DISTINCT page_id, heading, SUBSTRING(main_text,1,75) AS main_text FROM content WHERE page_id = '$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. //EDIT parts of the lines below that have fields names like $row_linkcat[ 'field1' ] //This script assumes you are searching only 3 fields. If you are searching more fileds make sure that add appropriate line. $titlehigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'heading' ] ); $linkhigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'main_text' ] ); foreach($trimmed_array as $trimm){ if($trimm != 'b' ){ //IF you added more fields to search make sure to add them below as well. $titlehigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $titlehigh); $linkhigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkhigh); } //end highlight switch ($value) { case '1': echo '<a href="http://www.leppdesign.com/index.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '2': echo '<a href="http://www.leppdesign.com/aboutus.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '3': echo '<a href="http://www.leppdesign.com/contact.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '4': echo '<a href="http://www.leppdesign.com/resources.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '5': echo '<a href="http://www.leppdesign.com/services.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; } ?> <p> <?php echo $linkhigh; ?>... </p> <hr> <?php } //end foreach $trimmed_array } //end foreach $newarr ?> <?php 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>"; } } ?>
  5. Hm...I tried that before, but then it listed the next and previous links regardless of whether there was a next or previous page.
  6. I'm working with PHP/MySQL to create a search box for a website. The problem I'm having is that when the results are more than the maximum allowed per page (2), it displays the "next 2" button after every result like below. How do I make it so that it only appears once at the bottom of all the results for the given page? orange you glad you picked this? a movie a day keeps the doctor away a movie a day keeps the docto... -------------------------------------------------------------------------------- Next 2 test hello there, doctor. hello nice to see you hats hats dogs dogs -------------------------------------------------------------------------------- Next 2 Here is the code at the end of my search code that I think is the culprit: <hr> <?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 ?>
  7. how would i echo the results ? i've been messing with it for the past few hours and can't seem to find how to do it right.
  8. I think that's what I already did, but I could be wrong. I just noticed, however, that my text results need to be echoed somehow. That is probably the reason that it did not display before. This line gets my page's heading and main text from the database: $query = "SELECT DISTINCT page_id, heading, main_text FROM content WHERE heading LIKE \"%$trimm%\" OR main_text LIKE \"%$trimm%\" ORDER BY heading DESC" ; then, later, the heading is set as $titlehigh and the main text is set as $linkhigh and $trimm seems to be what the person searched for
  9. Yes, that is what i am trying to accomplish. I implemented your script into mine, but it only brings back the title and not the text from the page. The place where the ext usually appears is blank on the results page. I must have somehow customized your script incorrectly. Here it is including your tidbit towards the end: <?php //This is a working script //Make sure to go through it and edit database table filelds that you are seraching //This script assumes you are searching 3 fields require_once ('../mysql_connect.php'); // Connect to the db. //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>Please enter a search...</p>" ; } // check for a search parameter if (!isset($var)){ $resultmsg = "<p>Please enter a search...</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 DISTINCT page_id, heading, main_text FROM content WHERE heading LIKE \"%$trimm%\" OR main_text LIKE \"%$trimm%\" ORDER BY heading 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{ //EDIT HERE and specify your field name that is primary key $adid_array[] = $row[ 'page_id' ]; }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> <p><?php // display what the person searched for. if( isset ($resultmsg)){ echo $resultmsg; exit(); }else{ echo "Search results for: " . $var; } ?> </p> <?php foreach($newarr as $value){ // EDIT HERE and specify your table and field names for the SQL query $query_value = "SELECT DISTINCT page_id, heading, main_text FROM content WHERE page_id = '$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. //EDIT parts of the lines below that have fields names like $row_linkcat[ 'field1' ] //This script assumes you are searching only 3 fields. If you are searching more fileds make sure that add appropriate line. $titlehigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'heading' ] ); $linkhigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'main_text' ] ); foreach($trimmed_array as $trimm){ if($trimm != 'b' ){ //IF you added more fields to search make sure to add them below as well. $titlehigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $titlehigh); $linkhigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkhigh); } //end highlight switch ($value) { case '1': echo '<a href="index.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '2': echo '<a href="aboutus.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '3': echo '<a href="contact.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '4': echo '<a href="resources.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '5': echo '<a href="services.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; } ?> <p> <?php $total_chars = 30; // you can change.. its the total number of allowed characters // find where the word is $word_loc = strpos($linkhigh,$trimm); // put the word in the middle of the outputted string if ($word_loc > ($total_chars / 2)) // if the word is past the middle of the string { strtr($linkhigh,($total_chars/2),$total_chars); // cut off the string at beginning and end // put ellipses at the beginning and end $linkhigh = "...".$linkhigh."..."; } else // otherwise { strtr($linkhigh,0,$total_chars); // just cut off the ending // put ellipses just at the end $linkhigh .= "..."; } // put ellipses at the beginning and end $linkhigh = "...".$linkhigh."..."; ?> </p> <hr> <?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 ?>
  10. I am working on a small search engine to put into my site to search the text on my pages. Right now all my page's text are being held in my database and displayed on my actual pages using php. Anyways, I have so far limited my search results to the first 75 characters, then given the user a link to the page that the keyword they searched for resides on. The problem is that some of the keyowrds occur after the 75th character. Is there a way to display 75 characters with the keyword being in the middle of those 75 characters? Here's my code...it's pretty long... : <?php //This is a working script //Make sure to go through it and edit database table filelds that you are seraching //This script assumes you are searching 3 fields require_once ('../mysql_connect.php'); // Connect to the db. //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>Please enter a search...</p>" ; } // check for a search parameter if (!isset($var)){ $resultmsg = "<p>Please enter a search...</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 DISTINCT page_id, heading, SUBSTRING(main_text,1,75) AS main_text FROM content WHERE heading LIKE \"%$trimm%\" OR main_text LIKE \"%$trimm%\" ORDER BY heading 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{ //EDIT HERE and specify your field name that is primary key $adid_array[] = $row[ 'page_id' ]; }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> <p><?php // display what the person searched for. if( isset ($resultmsg)){ echo $resultmsg; exit(); }else{ echo "Search results for: " . $var; } ?> </p> <?php foreach($newarr as $value){ // EDIT HERE and specify your table and field names for the SQL query $query_value = "SELECT DISTINCT page_id, heading, SUBSTRING(main_text,1,75) AS main_text FROM content WHERE page_id = '$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. //EDIT parts of the lines below that have fields names like $row_linkcat[ 'field1' ] //This script assumes you are searching only 3 fields. If you are searching more fileds make sure that add appropriate line. $titlehigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'heading' ] ); $linkhigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'main_text' ] ); foreach($trimmed_array as $trimm){ if($trimm != 'b' ){ //IF you added more fields to search make sure to add them below as well. $titlehigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $titlehigh); $linkhigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkhigh); } //end highlight switch ($value) { case '1': echo '<a href="index.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '2': echo '<a href="aboutus.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '3': echo '<a href="contact.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '4': echo '<a href="resources.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; case '5': echo '<a href="services.html"target="_blank"><h4>' . $titlehigh . '</h4></a>'; break; } ?> <p> <?php echo $linkhigh; ?>... </p> <hr> <?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 ?>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.