Kom ihåg mig?

Mysql - Olika resultat på samma fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2005-10-30, 09:48 #1
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
Har stött på ett skumt problem. Jag håller på och ändrar ett sökscript och får inte rätt resultat från min selectfråga. När jag ställer samma fråga direkt till databasen får jag de svar jag ska ha.

Så här ser koden ut:

Kod:
$srchSql .= $sortWord;
echo $srchSql;
$rs = new MySQLPagedResultSet($srchSql,20);
På detta får jag en rad tillbaka. Om jag ändrar koden till följande får jag de 29 rader jag ska ha:

Kod:
$srchSql = "Inklistrad fråga från echo $srchSql ovan"
$rs = new MySQLPagedResultSet($srchSql,20);

Hur är detta möjligt? Det är ju exakt samma fråga som skickas till funktionen. Jag har också provat att gå förbi funktionen, men det gör ingen skillnad.

Någon som har råkat ut för detta eller vet vad det kan bero på?
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 11:06 #2
chrizzs avatar
chrizz chrizz är inte uppkopplad
Medlem
 
Reg.datum: Aug 2004
Inlägg: 296
chrizz chrizz är inte uppkopplad
Medlem
chrizzs avatar
 
Reg.datum: Aug 2004
Inlägg: 296
Använder du mysqls fulltext search eller? Isåfall kan det bero på att ditt fulltext index inte är som det ska. Prova reparera tabellen "REPAIR TABLE asdf", eller helt enkelt droppa indexet och skapa det igen. Jag är osäker om repair table gör något åt indexet, men en drop nollställer garanterat och det byggs upp igen sen.
chrizz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 13:22 #3
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 chrizz@Oct 30 2005, 12:06
Använder du mysqls fulltext search eller? Isåfall kan det bero på att ditt fulltext index inte är som det ska. Prova reparera tabellen REPAIR TABLE asdf, eller helt enkelt droppa indexet och skapa det igen. Jag är osäker om repair table gör något åt indexet, men en drop nollställer garanterat och det byggs upp igen sen.

Nope, inget fulltextindex. Det är en InnoDb tabell.
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 13:49 #4
Gustaf Gustaf är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 220
Gustaf Gustaf är inte uppkopplad
Medlem
 
Reg.datum: Oct 2005
Inlägg: 220
jag förstår inte riktigt koden du skriver. Sänder du strängen

Citat:
$srchSql = "Inklistrad fråga från echo $srchSql ovan"
$rs = new MySQLPagedResultSet($srchSql,20);
eller? vad menar du med "inklistrad fråga"?
Gustaf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 14:27 #5
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
MySQLPagedResultSet är en pagingfunktion, själva anropet till databasen sker där, men problemet ligger inte där, jag har provat att gå förbi den. Det jag menar med inklistrad fråga är att jag i stället för att plocka fram SELECT satsen utiftrån mitt formulär skriver jag in den manuellt. Jag tar då frågan jag får från echot och klistrar in den enligt koden ovan, bara för att kontrollera, det konstiga är att då fungerar det...
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 15:51 #6
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
Vill du ha hjälp ordentligt så får du snällt skicka med classen och själva SQL-frågan också.

Tror du vi är synska och skall förstå exakt vad din class gör eller?

Så här mycket förstår jag:

Kod:
$srchSql .= $sortWord;
Okej, han kontaninera han ihop variablarna $srchSql och $sortWord
Kod:
echo $srchSql;
Skriver ut värdet i $srchSql
Kod:
$rs = new MySQLPagedResultSet($srchSql,20);
Kallar klassen MySQLPagedResultSet och tar emot resultatet i $rs

Men vad innehåller då $srchSql och $sortWord ?
Vad gör klassen MySQLPagedResultSet ?


Citat:
Originally posted by Patek Philippe@Oct 30 2005, 15:27
MySQLPagedResultSet är en pagingfunktion, själva anropet till databasen sker där, men problemet ligger inte där, jag har provat att gå förbi den.
Det är ingen funktion. Det är en KLASS.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 17:21 #7
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
Ja, det är klart att det är en klass. Syftade på funktionen med samma namn i klassen. My bad. Klassen är dock rätt ointressant eftersom jag som sagt provat att gå förbi den med samma resultat.

$srchSql innehåller följande: 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 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 l.summary LIKE '% sökord%') ORDER BY l.publish_date DESC

Denna fungerar alltså precis som den ska när jag kör den direkt mot databasen, alternativt klipper in den från echot enligt mitt första exempel.
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 17:44 #8
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
När du skrivar att har provat att gå förbi klassen har du då kört frågan på detta sätt?

$rs = mysql_query($srchSql);

För mig låter det som om det är något som händer i klassen. Prova att stoppa in echo i klassen för att se hur frågan ser ut i klassen precis innan den körs där.
guran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 17:51 #9
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:
När du skrivar att har provat att gå förbi klassen har du då kört frågan på detta sätt?

$rs = mysql_query($srchSql);

För mig låter det som om det är något som händer i klassen. Prova att stoppa in echo i klassen för att se hur frågan ser ut i klassen precis innan den körs där.
Jajamen, tycker därför att jag kan utesluta att problemet skulle ligga där.
Patek Philippe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-10-30, 17:56 #10
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
Vad avses med 20 i MySQLPagedResultSet($srchSql,20)?
guran ä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 14:00.

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