Toon posts:

[Sql]Zoek functie integreren werkt niet, sql error...

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008

Verwijderd

Topicstarter
In een bestaande database wil ik een zoek functie bij maken, deze moet zoeken in de table "serveraccount".
Op een voorgaande php pagina geef ik de zoek string in ($search) en druk op "zoek", vervolgens krijg ik deze error:

"Can't find FULLTEXT index matching the collum list"

Ik gebruik de volgende query voor de zoek functie :

select * FROM serveraccont WHERE MATCH (fname,lname,nnick,ip,email,email2) AGAINST ('$search')

De $search wordt dus in een ander voorgaande pagina gedefineerd(dat is mijn zoek opdracht). Deze waarde is ook aanwezig (een echo $search laat inderdaad mijn ingegeven zoek opdracht zien)

Ik heb dus al een BESTAANDE db die al gevuld is met data en ik wil dus er nu een zoekfunctie bij zetten, de tabel "serveraccount" heeft nu13 rijen(rows).
Moet ik daar nu een extra row toevoegen die " FULLTEXT" heet?
Zoja wat zijn de waardes van die row? (tinyint, text, null enz)

Ik heb wel geprobeert om het erbij te zetten maar zodra ik de row naam "FULLTEXT" geef krijg ik direct een error van phpmyadmin:
"ALTER TABLE serveraccount ADD FULLTEXT TINYINT not null "

MySQL retourneerde: You have an error in your syntax near 'TINYINT not null' at line 1

(Maak ik van TINYINT iets anders krijg ik dus ook een error)
Dus iets doe ik niet goed maar wat?
Welke waardes moet ik nu ingeven zodat ik die "FULLTEXT" wel kan aanmaken of moet ik helemaal geen FULLTEXT aanmaken?

Een andere vraag is ook, kan ik niet zoeken in de bestaande rows die al gevuld zijn met data?
Zoja hoe?
Zo nee hoe krijg ik dan wel die zoek functie wel werkend?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

"Can't find FULLTEXT index matching the collum list"
Het lijkt me aardig duidelijk wat het probleem is, je hebt namelijk geen index geplaatst op de kolom waarop je de full-text search wilt uitvoeren.

Leesvoer:
http://www.mysql.com/doc/en/Fulltext_Search.html

[ Voor 5% gewijzigd door DeverauX op 16-03-2003 09:12 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • source
  • Registratie: Januari 2000
  • Laatst online: 05-06 11:53
In plaats van MATCH zou je ook LIKE kunnen gebruiken... weet niet precies wat het verschil is maar ik gebruik het altijd om stuff op te zoeken in m'n db.

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.


  • Alex
  • Registratie: Juli 2001
  • Laatst online: 28-02 19:26
source schreef op 16 maart 2003 @ 10:23:
In plaats van MATCH zou je ook LIKE kunnen gebruiken... weet niet precies wat het verschil is maar ik gebruik het altijd om stuff op te zoeken in m'n db.
Het verschil is dat je met MATCH wél een FULLTEXTSEARCH doet en met LIKE niet... :? 8)7
Dus wél MATCH doen...

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
prog-konijn schreef op 16 March 2003 @ 11:24:
[...]


Het verschil is dat je met MATCH wél een FULLTEXTSEARCH doet en met LIKE niet... :? 8)7
Dus wél MATCH doen...
Dat ligt er maar net aan of hij exht FULLTEXTSEARCH wil doen. Meestal is LIKE al voldoende hoor.. zeker met '%$search%'

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Dat ligt er maar net aan of hij exht FULLTEXTSEARCH wil doen. Meestal is LIKE al voldoende hoor.. zeker met '%$search%'
LIKE is alleen toereikend wanneer je zoekt op trefwoord (enkelvoud!), terwijl MATCH je onder andere in staat stelt op meerdere trefwoorden te zoeken. Daarnaast is het zo dat (bij MySQL tenminste) dat alleen de eerste 150 karakters in een field worden vergeleken met de zoekterm.
offtopic:
Ik persoonlijk zou het gebruik van het LIKE-statement geen zoek-functionaliteit willen noemen.

[ Voor 8% gewijzigd door DeverauX op 16-03-2003 11:42 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Bedankt voor de reactie's maar niemand die me nu veteld HOE ik die FULLTEXT row erbij krijg?

Ik ben niet zo thuis in die sql.
Het lees voer gaat er allemaal vanuit dat je nieuwe tabellen aanmaakt maar ik wil een BESTAANDE tabel waarin al flink wat data zit ermee uitbreiden.

Dus een zoek functie erbij wil hebben moet ik een row FULLTEXT hebben in mijn tabel, klopt dit?
Is dat de enigste row die erbij moet?
Wat zijn de waardes van die row FULLTEXT dan?
Hoe zet ik die erbij? want ik krijg telkens een error als ik de row erbij wil zetten met phpmyadmin.

Als ik MATCH in LIKE verander dan krijg ik ook een error namelijk, de zelfde error SQL syntax near 'LIKE....... AGAINST (..... at line1

Kan me iemand dus uitleggen wat ik precies moet bijvoegen en HOE ik dat moet doen, want kwestie van add row in phpmyadmin werkt namelijk niet.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

nee geen row fulltext.

LEES die documentatie op mysql dan eens, je moet een fulltext INDEX maken...
Ow en langer dan een halve seconde naar je tabel eigenschappen in phpmyadmin kijken werkt ook wel eens... Daar kan je het, bij mijn weten, zo instellen.

[ Voor 44% gewijzigd door ACM op 16-03-2003 18:36 ]


Verwijderd

Topicstarter
Ik heb hem gelezen maar snap er de ballen van

Vertel me nu gewoon svp in het Nederlands wat ik moet doen.... Kom er gewoon niet uit

Wat moet ik aan maken?!?!?! (of installen of wat dan ook)

Wat is dan een FULLTEXT index?!?!?!
Kan dat nergens vinden waar in het NEDERLANDS dit duidelijk uit gelegd staat, ik zie de index optie wel staan onder "aktie" in phpmyadmin maar als ik daarop klik krijg ik dus ook een error.
En bij welke row moet ik die index aanzetten dan?!!?

Snap er gewoon de ballen van, zoek gewoon iemand die me kan vertellen wat ik aan/uit moet zetten, zo snap ik ook wat ik doe
Die tutorials lezen werkt 9 van de 10 keer niet, van het voordoen (door bv hier de juiste sql te plaatsten) leer je tenminste wat van.
Dan zie ik wat ik verkeerd doe, nu ben ik aan het experimenteren en krijg het niet werkend, hoe meer ik experimenteer des te minder zie ik de oplossing, toen ik eraan begon leek het redelijk simpel maar nu na al die tutorials en geexperimenteer snap ik er echt geen hout meer van...

[ Voor 69% gewijzigd door Verwijderd op 16-03-2003 18:45 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op het woord fulltext klikken in phpmyadmin... Ow en dan natuurlijk PER kolom die je wilt indexeren...

is dat nou zo moeilijk :?

[ Voor 28% gewijzigd door ACM op 16-03-2003 18:41 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Zie ACM en de andere users. Je moet dus geen kolom aanmaken, maar een eigenschap zetten op een kolom.
Lees anders eens wat over de theorie van databases voordat je ermee aan de slag gaat, anders wordt het vaak een heel moeilijk verhaal :) Hoe dan ook, hiervoor is GoT niet echt bedoeld. Tutorials staan er genoeg op het web :)

Ik wens u veel succes :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je een engelstalig product gebruikt, zul je idd niet gauw in het Nederlands de uitleg vinden. En van een gratis product kan je oo niet verwachten dat ze dat voor je vertalen. Echter is er vast wel ergens een nederlandse tutorial/vertaling van de manual voor mysql.

Ik heb dat zelf niet nodig, ik kan redelijk engels lezen, dus ik zou niet weten waar.

edit:

Hey, glimi sloot het net voor mijn neus :)

[ Voor 9% gewijzigd door ACM op 16-03-2003 18:47 ]

Pagina: 1

Dit topic is gesloten.