Cretaing Search Page using PHP

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • agarwalsrushti
    New Member
    • Feb 2008
    • 63

    Cretaing Search Page using PHP

    Hi,
    I ve been doing my university project. Im making a job site where in if the employer enters the search page he will be given a search drop down box. He can select the criteria he needs to be there in the employee. For eg. in the drpop down he selected key skills and he entered PHP then the Name of People with those skill should be displayed and then when the employer clicks on the name he should be able to view his complete profile which he filled during registration. Im not able to do this. Im using PHP with MySQL. All the details of the user is in the userdetails table of the database. Can you plz help me out with this.
  • agarwalsrushti
    New Member
    • Feb 2008
    • 63

    #2
    Ive tried this code which helps me in searching. In the text box employer can specify two vars for which it will serach. But the vars should be in a particular order.

    [code=php]
    <?php

    $hostname_logon = "localhost" ;
    $database_logon = "skills_portfol io" ;
    $username_logon = "root" ;
    $password_logon = "database" ;
    //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_logo n) or die ( "Unable to select database!" );

    //specify how many results to display per page
    $limit = 10;

    // Get the search variable from URL
    $var = $_POST['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 userdetails WHERE KeySkills LIKE \"%$trimm%\" OR UserName LIKE \"%$trimm%\" ORDER BY KeySkills DESC" ;
    // Execute the query to get number of rows that contain search kewords
    $numresults=mys ql_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_arr ay ($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[ 'UserDetailsId' ];
    }while( $row= mysql_fetch_arr ay($numresults) );
    } //end foreach

    if($row_num_lin ks_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($a did_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="post" name="search">
    <div align="center">
    <input name="q" type="text" value="" 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 userdetails WHERE UserDetailsId = '$value'";
    $num_value=mysq l_query ($query_value);
    $row_linkcat= mysql_fetch_arr ay ($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[ 'KeySkills' ] );
    $linkhigh = preg_replace ( "'($var)'si " , "<b>\\1</b>" , $row_linkcat[ 'UserName' ] );
    // $linkdesc = preg_replace ( "'($var)'si " , "<b>\\1</b>" , $row_linkcat[ 'field3' ] );

    foreach($trimme d_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);
    // $linkdesc = preg_replace( "'($trimm)' si" , "<b>\\1</b>" , $linkdesc);
    }
    //end highlight

    ?>
    <p>
    <?php echo $titlehigh; ?><br>
    <?php echo $linkhigh; ?><br>
    </p>

    <?php
    } //end foreach $trimmed_array
    if($row_num_lin ks_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=$va r&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&ca tid=$catid'>Nex t " .$limit. "</a></div>";
    }
    }
    } //end foreach $newarr
    ?>
    [/code]

    Plz let me know how can it b done using drop down box.

    Comment

    • Markus
      Recognized Expert Expert
      • Jun 2007
      • 6092

      #3
      What do you mean the vars should be in particular order?

      Comment

      • ronverdonk
        Recognized Expert Specialist
        • Jul 2006
        • 4259

        #4
        Originally posted by agarwalsrushti
        Hi,
        I ve been doing my university project. Im making a job site where in if the employer enters the search page he will be given a search drop down box. He can select the criteria he needs to be there in the employee. For eg. in the drpop down he selected key skills and he entered PHP then the Name of People with those skill should be displayed and then when the employer clicks on the name he should be able to view his complete profile which he filled during registration. Im not able to do this. Im using PHP with MySQL. All the details of the user is in the userdetails table of the database. Can you plz help me out with this.
        The experts on this site are more than happy to help you with your problems but they cannot do your assignment/program for you. Attempt the assignment/program yourself first and post questions regarding any difficulties you have or about a particular function of the code that you don't know how to achieve.

        Please read the Posting Guidelines and particularly the Coursework Posting Guidelines.

        Then when you are ready post a new question in this thread.

        MODERATOR

        Comment

        Working...