Kom ihåg mig?

Mysql - Olika resultat på samma fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2005-10-30, 18:26 #11
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by Patek Philippe@Oct 30 2005, 18:21
Ja, det är klart att det är en klass. Syftade på funktionen med samma namn i klassen.
Det är ingen funktion. Det är en metod
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 18:29 #12
DeSotos avatar
DeSoto DeSoto är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2005
Inlägg: 323
DeSoto DeSoto är inte uppkopplad
Flitig postare
DeSotos avatar
 
Reg.datum: Oct 2005
Inlägg: 323
Citat:
Originally posted by guran@Oct 30 2005, 18:56
Vad avses med 20 i MySQLPagedResultSet(srchSql,20)?
Med största sannolikhet hur många poster som ska visas per sida.
DeSoto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 18:49 #13
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Citat:
Citat:
Vad avses med 20 i MySQLPagedResultSet(srchSql,20)?
Med största sannolikhet hur många poster som ska visas per sida.
Exakt.

Citat:
Det är ingen funktion. Det är en metod
Kanske det, spelar det någon större roll? Du har inte någon idé om vad som kan vara problem i stället?
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 21:53 #14
guran guran är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 061
guran guran är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 061
Har du möjlighet att sätta in koden exakt på hur $srchSql och $sortWord ser ut?
guran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 22:31 #15
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Citat:
Originally posted by guran@Oct 30 2005, 22:53
Har du möjlighet att sätta in koden exakt på hur srchSql och sortWord ser ut?
Visst, så här ser det ut.

Kod:
$srchSql = "SELECT l.legal_case_id, l.header, l.body, l.publish_date, l.summary, lt.name, lt.legal_case_type_id, la.name, la.legal_area_id FROM legal_case l, legal_case_type lt, legal_area la";
$srchSql .= " WHERE l.legal_case_type_id = lt.legal_case_type_id AND l.legal_area_id = la.legal_area_id ";

$ors = 0;
$sortLink = "";

if ($_REQUEST["legal_case_type1"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 1";
	$ors++;
	$sortLink .= '&legal_case_type1=1';
}
if ($_REQUEST["legal_case_type2"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 2";
	$ors++;
	$sortLink .= '&legal_case_type2=2';
}
if ($_REQUEST["legal_case_type3"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 3";
	$ors++;
	$sortLink .= '&legal_case_type3=3';
}
if ($_REQUEST["legal_case_type4"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 4";
	$ors++;
	$sortLink .= '&legal_case_type4=4';
}
if ($_REQUEST["legal_case_type5"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 5";
	$ors++;
	$sortLink .= '&legal_case_type5=5';
}
if ($_REQUEST["legal_case_type6"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 6";
	$ors++;
	$sortLink .= '&legal_case_type6=6';
}
if ($_REQUEST["legal_case_type7"] != '') {
	if($ors == 0) {
 $srchSql .= " AND (";	
	} else {
 $srchSql .= " OR "; 
	}
	$srchSql .= "l.legal_case_type_id = 7";
	$ors++;
	$sortLink .= '&legal_case_type7=7';
}

if($ors > 0) {
	$srchSql .= ")";	
}


if($_REQUEST['publish_date'] == 'last_3_days'){
	$srchSql .= " AND l.publish_date >= DATE_SUB(CURDATE(),INTERVAL 3 DAY)";	
	$sortLink .= '&publish_date=last_3_days';
} else if($_REQUEST['publish_date'] == 'last_week'){
	$srchSql .= " AND l.publish_date >= DATE_SUB(CURDATE(),INTERVAL 7 DAY)";	
	$sortLink .= '&publish_date=last_3_days';
} else if($_REQUEST['publish_date'] == 'last_month'){
	$srchSql .= " AND l.publish_date >= DATE_SUB(CURDATE(),INTERVAL 30 DAY)";	
	$sortLink .= '&publish_date=last_month';
}

if($_REQUEST['legal_area'] != ''){
  $srchSql .= " AND l.legal_area_id = " . $_REQUEST['legal_area'];
  $sortLink .= '&legal_area=' . $_REQUEST['legal_area'];
}

if($_REQUEST['header'] != ''){
  $srchSql .= " AND l.header LIKE '%" . $_REQUEST['header'] . "%' ";
  $sortLink .= '&header=' . $_REQUEST['header'];
}

if($_REQUEST['bodytext'] != ''){
	$keyword = makeboolean("l.body",$_REQUEST['bodytext']);
	$keyword2 = makeboolean("l.summary",$_REQUEST['bodytext']);
	
 
	$srchSql .= " AND (" . $keyword;
	$srchSql .= " OR " . $keyword2 . ") ";
	$sortLink .= '&bodytext=' . $_REQUEST['bodytext'];
}

$srchSql .= $sortWord;


echo $srchSql;

//$srchSql = "SELECT l.legal_case_id, l.header, l.body, l.publish_date, summary, lt.name legal_casetype, la.name legal_area FROM legal_case l, legal_case_type lt, legal_area la WHERE l.legal_case_type_id = lt.legal_case_type_id AND l.legal_area_id = la.legal_area_id AND (l.body LIKE '% sökord%' OR summary LIKE '% sökord%') ORDER BY l.publish_date DESC";


$rs = new MySQLPagedResultSet($srchSql,20);
EDIT: Missade de sista raderna. Om jag byter till den bortkommenterade raden fungerar det alltså.

Funktionen makeboolean: (Nej, jag kan inte använda fulltextindesk med boolean mode i stället)

Kod:
/***********************************************************/
function makeboolean($sqlfieldname, $keywordstr) {
// pass into this function the sqlfieldname that you want to search by and the original string
// that the user entered into the form field on the search engine.
// After you get back the result from this function, include it into your complete search string.
// Note, you may want to call this function repeatedly to search through various fields in your
// tables.

$keyword = $keywordstr;

// Convert String To Lower Case
 $keyword = strtolower($keyword);

// Replace Word Operators With Single Character Operators
 $keyword = ereg_replace(" and ","+",$keyword);
 $keyword = ereg_replace(" or ","|",$keyword);
 $keyword = ereg_replace(" not ","-",$keyword);


// Build The Keywords String Based On Operators Assigned Above
 $operatorcount = 0;
 $len = strlen($keyword);
 for ($z = 0; $z < $len; $z++) {
 if(($keyword[$z] == "+") || ($keyword[$z] == "|") || ($keyword[$z] == "-")) {
  $operatorpos[$operatorcount] = $z;
  $operatorcount++;
 }
 } 

 if ($operatorcount != 0) { 
  for ($z = 0; $z < $operatorcount; $z++) {
   if($z == 0) {
    $startpos = 0;
    $endpos = $operatorpos[$z];
   } else {
    $startpos = $operatorpos[$z - 1] + 1;
    $endpos = $operatorpos[$z];
   }
 
  $word = $endpos - $startpos;
  $keystring = substr($keyword,$startpos,$word);
  $keystring = ereg_replace("\(","",$keystring);
  $keystring = ereg_replace("\)","",$keystring);
  $keywords[$z] = $keystring;
  $operator_pos = $operatorpos[$z];
  $operators[$z] = $keyword[$operator_pos];
  } // end the for loop

 $wordcount = $operatorcount + 1;
 $startpos = $operatorpos[$z - 1] + 1;
 $len2 = strlen($keyword) - $startpos;
 $linestr = substr($keyword,$startpos,$len2);

 //store the line into the keywords array
 $keywords[$wordcount - 1] = $linestr;


 //loop through all of the words in the words array replacing them in the original string with a 
//LIKE clause
 for ($z=0; $z < $wordcount; $z++) {
  $replacekeyword = $keywords[$z];
  $y = $z -1;
  if ($operators[$y] != "-")  //odd case is in a NOT...must do something different!
   $keyword = ereg_replace($replacekeyword,"$sqlfieldname LIKE '%$replacekeyword%'",$keyword);
  else
   $keyword = ereg_replace($replacekeyword,"$sqlfieldname NOT LIKE '%$replacekeyword%'",$keyword);
 }

// Replace Our Operators With The Correct SQL Operators 
 $keyword = ereg_replace("\+"," AND ", $keyword);
 $keyword = ereg_replace("\|"," OR ", $keyword);
 $keyword = ereg_replace("\-"," AND ", $keyword); //I fudged in the above statement so this possible :-)

} // end if operatorcount != 0
else { //there were no operators in the string
  $replacekeyword = $keyword;
 if ($keyword != "") {
  $keyword = ereg_replace($replacekeyword,"$sqlfieldname LIKE '%
$replacekeyword%'",$keyword); 
 }
}
 
 return($keyword);

} //end the makebooleanstatement function 

///////////////////////////////////////////////////////////////
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-31, 00:32 #16
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Ursprungligen postat av Jonas
Citat:
Ursprungligen postat av Patek Philippe
Ja, det är klart att det är en klass. Syftade på funktionen med samma namn i klassen.

Det är ingen funktion. Det är en metod
Nej, Det är en klass... =)
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-31, 21:11 #17
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Ingen som har någon idé?
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 11:10 #18
guran guran är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 061
guran guran är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 061
Det är väldigt mysko det hela och jag måste säga att jag kan inte komma på vad det kan vara för fel.
guran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 13:34 #19
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Patek Philippe Patek Philippe är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 91
Citat:
Originally posted by guran@Nov 1 2005, 12:10
Det är väldigt mysko det hela och jag måste säga att jag kan inte komma på vad det kan vara för fel.
Kan säga att jag börjar bli kal på skallen av allt kliande...

Märkte dock att det fungerar om jag skippar makeboolean-funktionen och byter ut
Kod:
if($_REQUEST['bodytext'] != ''){
$keyword = makeboolean("l.body",$_REQUEST['bodytext']);
$keyword2 = makeboolean("l.summary",$_REQUEST['bodytext']);

 
$srchSql .= " AND (" . $keyword;
$srchSql .= " OR " . $keyword2 . ") ";
$sortLink .= '&bodytext=' . $_REQUEST['bodytext'];
}
mot
Kod:
if($_REQUEST['bodytext'] != ''){
  $srchSql .= " AND (l.body LIKE '%" . $_REQUEST['bodytext'] . "%' ";
	$srchSql .= " OR summary LIKE '%" . $_REQUEST['bodytext'] . "%') ";
  $sortLink .= '&bodytext=' . $_REQUEST['bodytext'];
}
Men så vill jag ju inte ha det...
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017