Sökningen ska fungera på ungefär samma sätt som på Facebook (och många andra liknande sajter såklart). Dvs, du trycker in första bokstaven på ett namn så dyker ett antal matchande personer upp i en ruta under sökfältet.
Vilken är den bästa approachen om jag vill bygga detta i PHP?
1. Att vid varje "keyup" göra en fråga direkt till databasen
2. Att vid varje "keyup" söka i en textfil (som fylls på så fort en ny användare reggar sig på sajten)
Jag vill ju såklart att sökfunktionen ska gå fort och inte tugga sönder min databas...
Använd jQuery och autocomplete. Du kan "mata" funktionen med ajax-information. Om du är rädd för att tugga sönder din databas bör du dock vara försiktig med hur ofta du uppdaterar under tiden man skriver. T ex med en timeout innan den söker och/eller krav på ett visst antal tecken.
Det beror på vad du vill göra och hur mycket data som finns. Om det är ett begränsat antal värde som ska föreslås så kanske man kan lägga ut det direkt. Om man ska söka i en databas med tusentals värde så får man nog göra en AJAX-sökning efterhand som man skriver. Det senare innebär dock precis som du nämnde i första inlägget en risk för väldigt många anrop till databasen.
vid sökning kan du ju göra like %% så den söker efter likande händelser med ajax, vilket skulle minska resultatne hela tiden för varje ord man skriver.
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849