search error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



search error and code has been posted
  --------------------------
  Got error 28 from table handler
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home2/wwwabcde/public_html/multipurposechain/searchfuncs.php on line 294
Got error 28 from table handlerDisplaying results 1-10 of 4541 matches (12.77 seconds) 
  Result page: 1 2 3 4 5 6 7 8 9 10 Next
   
  
--------------------------------------------------------------------------------
   
<?
/*******************************************
  ********************************************/
  
error_reporting(E_ALL ^ E_NOTICE);
$include_dir = "include";
include "$include_dir/commonfuncs.php";
  
 function cmp($a, $b) {
  if ($a['weight'] == $b['weight'])
   return 0;
    return ($a['weight'] > $b['weight']) ? -1 : 1;
 }
   function addmarks($a) {
  $a = eregi_replace("[ ]+", " ", $a);
  $a = str_replace(" +", "+", $a);
  $a = str_replace(" ", "+", $a);
  return $a;
 }
   function makeboollist($a) {
  global $entities;
  while ($char = each($entities)) {
   $a = eregi_replace($char[0], $char[1], $a);
  }
  $a = trim($a);
  $a = eregi_replace("&quot;", "\"", $a);
  $returnWords = array();
  //get all phrases
  $regs = Array();
  while (eregi("([-]?)\"([^\"]+)\"", $a, $regs)) {
   if ($regs[1] == '') {
    $returnWords['+s'][] = $regs[2];
    $returnWords['hilight'][] = $regs[2];
   } else {
    $returnWords['-s'][] = $regs[2];
   }
   $a = str_replace($regs[0], "", $a);
  }
  $a = strtolower(eregi_replace("[ ]+", " ", $a));
//  $a = remove_accents($a);
  $a = trim($a);
  $words = explode(' ', $a);
  if ($a=="") {
   $limit = 0;
  } else {
  $limit = count($words);
  }
  
  $k = 0;
  //get all words (both include and exlude)
  $includeWords = array();
  while ($k < $limit) {
   if (substr($words[$k], 0, 1) == '+') {
    $includeWords[] = substr($words[$k], 1);
   } else if (substr($words[$k], 0, 1) == '-') {
    $returnWords['-'][] = substr($words[$k], 1);
   } else {
    $includeWords[] = $words[$k];
    $returnWords['hilight'][] =  $words[$k];
   }
   $k++;
  }
  //add words from phrases to includes
  if (isset($returnWords['+s'])) {
   foreach ($returnWords['+s'] as $phrase) {
    $phrase = strtolower(eregi_replace("[ ]+", " ", $phrase));
    $phrase = trim($phrase);
    $temparr = explode(' ', $phrase);
    foreach ($temparr as $w)
     $includeWords[] = $w;
   }
  }
    foreach ($includeWords as $word) {
   if (!($word =='')) {
    if (ignoreWord($word)) {
       $returnWords['ignore'][] = $word;
    } else {
     $returnWords['+'][] = $word;
    } 
   }
    }
    return $returnWords;
 }
   function ignoreword($word) {
  global $common;
  global $min_word_length;
  global $index_numbers;
  if ($index_numbers == 1) {
   $pattern = "[a-z0-9]+";
  } else {
   $pattern = "[a-z]+";
  }
  if (strlen($word) < $min_word_length || (!eregi($pattern, remove_accents($word))) || ($common[$word] == 1)) {
   return 1;
  } else {
   return 0;
  }
 }
   function search($searchstr, $category, $start, $per_page, $type) {
  global $length_of_link_desc,$mysql_table_prefix, $show_meta_description;
    //find all sites that should not be included in the result
  if (count($searchstr['+']) == 0) {
   return null;
  }
  $wordarray = $searchstr['-'];
  $notlist = array();
  $not_words = 0;
  while ($not_words < count($wordarray)) {
   $searchword = addslashes($wordarray[$not_words]);
     $query1 = "SELECT link_id from ".$mysql_table_prefix."link_keyword, ".$mysql_table_prefix."keywords where ".$mysql_table_prefix."link_keyword.keyword_id= ".$mysql_table_prefix."keywords.keyword_id and keyword='$searchword'";
   echo mysql_error();
   $result = mysql_query($query1);
     while ($row = mysql_fetch_row($result)) { 
    $notlist[$not_words]['id'][$row[0]] = 1;
   }
   $not_words++;
  }
  
    //find all sites containing the search phrase
  $wordarray = $searchstr['+s'];
  $phrase_words = 0;
  while ($phrase_words < count($wordarray)) {
   $searchword = addslashes($wordarray[$phrase_words]);
   $query1 = "SELECT link_id from ".$mysql_table_prefix."links where fulltxt like '% $searchword%'";
   echo mysql_error();
   $result = mysql_query($query1);
   $num_rows = mysql_num_rows($result);
   if ($num_rows == 0) {
    return null;
   }
   while ($row = mysql_fetch_row($result)) { 
    $phraselist[$phrase_words]['id'][$row[0]] = 1;
   }
   $phrase_words++;
  }
  
    if ($category> 0) {
   $allcats = get_cats($category);
   $catlist = implode(",", $allcats);
   $query1 = "select link_id from ".$mysql_table_prefix."links, ".$mysql_table_prefix."sites, ".$mysql_table_prefix."categories, ".$mysql_table_prefix."site_category where ".$mysql_table_prefix."links.site_id = ".$mysql_table_prefix."sites.site_id and ".$mysql_table_prefix."sites.site_id = ".$mysql_table_prefix."site_category.site_id and ".$mysql_table_prefix."site_category.category_id in ($catlist)";
   $result = mysql_query($query1);
   echo mysql_error();
   $num_rows = mysql_num_rows($result);
   if ($num_rows == 0) {
    return null;
   }
   while ($row = mysql_fetch_row($result)) { 
    $category_list[$row[0]] = 1;
   }
  }
    //find all sites that include the search word 
  $wordarray = $searchstr['+'];
  $words = 0;
  $starttime = getmicrotime();
  while ($words < count($wordarray)) {
   $searchword = addslashes($wordarray[$words]);
   $query1 = "SELECT distinct link_id, weight from ".$mysql_table_prefix."link_keyword, ".$mysql_table_prefix."keywords where ".$mysql_table_prefix."link_keyword.keyword_id= ".$mysql_table_prefix."keywords.keyword_id and keyword='$searchword' order by weight desc";
   $result = mysql_query($query1);
   $num_rows = mysql_num_rows($result);
   if ($num_rows == 0) {
    return null;
   }
   if ($type == "or") {
    $indx = 0;
   } else {
    $indx = $words;
   }
   
   while ($row = mysql_fetch_row($result)) { 
    $linklist[$indx]['id'][] = $row[0];
    $linklist[$indx]['weight'][$row[0]] = $row[1];    }
   $words++;
  }
    if ($type == "or") {
   $words = 1;
  }
  $result_array = Array();
   
    if ($words == 1 && $not_words == 0 && $category < 1) { //if there is only one search word, we already have the result
   $result_array = $linklist[0]['weight'];
  } else { //otherwise build an intersection of all the results
   $j= 1;
   $min = 0;
   while ($j < $words) {
    if (count($linklist[$min]['id']) > count($linklist[$j]['id'])) {
     $min = $j;
    }
    $j++;
   }
     $j = 0;
  
   $temp_array = $linklist[$min]['id'];
   $count = 0;
   while ($j < count($temp_array)) {
    $k = 0; //and word counter
    $n = 0; //not word counter
    $o = 0; //phrase word counter
    $weight = 1;
    $break = 0;
    while ($k < $words && $break== 0) {
     if ($linklist[$k]['weight'][$temp_array[$j]] > 0) {
      $weight = $weight + $linklist[$k]['weight'][$temp_array[$j]];
     } else {
      $break = 1;
     }
     $k++;
    }
    while ($n < $not_words && $break== 0) {
     if ($notlist[$n]['id'][$temp_array[$j]] > 0) {
      $break = 1;
     }
     $n++;
    }    
      while ($o < $phrase_words && $break== 0) {
     if ($phraselist[$n]['id'][$temp_array[$j]] != 1) {
      $break = 1;
     }
     $o++;
    }
    if ($break== 0 && $category > 0 && $category_list[$temp_array[$j]] != 1) {
     $break = 1;
    }
      if ($break == 0) {
     $result_array[$temp_array[$j]] = $weight;
     $count ++;
    }
    $j++;
   }
  }//word == 1
    $end = getmicrotime()- $starttime;
    $results = count($result_array);
  if ($results == 0) {
   return null;
  }
  arsort ($result_array);
  
  $keys = array_keys($result_array);
  $maxweight = $result_array[$keys[0]];
    for ($i = ($start -1)*$per_page; $i <min($results, ($start -1)*$per_page + $per_page) ; $i++) {
   $in[] = $keys[$i];
    }
  
  if (!is_array($in)) {
   $res['results'] = $results;
   return $res;
  }
    $inlist = implode(",", $in);
  
  if ($length_of_link_desc == 0) {
   $fulltxt = "fulltxt";
  } else {
   $fulltxt = "substring(fulltxt, 1, $length_of_link_desc)";
  }
    $query1 = "SELECT distinct link_id, url, title, description,  $fulltxt, size FROM ".$mysql_table_prefix."links WHERE link_id in ($inlist)";
  $result = mysql_query($query1);
  echo mysql_error();
                                       
    $i = 0;
  while ($row = mysql_fetch_row($result)) {
   $res[$i]['title'] = $row[2];
   $res[$i]['url'] = $row[1];
   if ($row[3] != null && $show_meta_description == 1)
    $res[$i]['fulltxt'] = $row[3];
   else 
    $res[$i]['fulltxt'] = $row[4];
  
   $res[$i]['size'] = $row[5];
   $res[$i]['weight'] = $result_array[$row[0]];
   $i++;
  }
if(count($res)!=0)
  
    usort($res, "cmp");
   
   
                                           echo mysql_error();
  $res['maxweight'] = $maxweight;
  $res['results'] = $results;
  return $res;
 /**/
 }
?>


 
---------------------------------
Sponsored Link

Mortgage rates near 39yr lows. $510,000 Mortgage for $1,698/mo -   Calculate new house payment

[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux