Avatar billede baronen20 Nybegynder
19. januar 2003 - 15:20 Der er 16 kommentarer og
1 løsning

hvis 'dether' ligner 'dether' så...

Til søgning blandt resultater:

if($player[name] == $search)

skal laves om til:

if($player[name] ER_NOGET_LIGNENDE $search)

Man kan ikke bruge % i sætningen som:

if($player[name] == %$search%)

Hvad skal jeg skrive?
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:21 #1
Hvad mener du med "ligner". Er det ok at $search
er en delstreng af den anden streng?
Avatar billede baronen20 Nybegynder
19. januar 2003 - 15:22 #2
Der bliver ikke brugt sql, så det er IKKE noget med

SELECT * FROM liste where player = %$search%

Bare så i ved det...
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:24 #3
Ok - glem det - jeg tror ikke vi snakke samme sprog.
Jeg hopper ud af spørgsmålet.
Avatar billede baronen20 Nybegynder
19. januar 2003 - 15:24 #4
f.eks. en liste med

per hansen
hans persen
lotte hansen

når man søger på per, så får man

per hansen
hans persen

Altså hvis søgeordet findes på listen, selvom der er tegn foran eller bagved, så skal det med
Avatar billede baronen20 Nybegynder
19. januar 2003 - 15:25 #5
er det for sort?
Avatar billede dmcn Praktikant
19. januar 2003 - 15:27 #6
Avatar billede Slettet bruger
19. januar 2003 - 15:29 #7
http://dk.php.net/manual/en/function.stristr.php

if (stristr($search, $player['name'])) {
  echo "player name er indeholdt i search";
Avatar billede jakoba Nybegynder
19. januar 2003 - 15:34 #8
Nej det er pænt forståeligt.
Og det kan endda ret nemt gøres med en regular expression.
se:  http://dk.php.net/manual/en/function.preg-match.php

det skal skrives anderleden en med SQL's LIKE, men til gengæld er der LANGT flere muligheder.
  if ( $player['name'] LIKE '%$search%' )
kan fx skrives som:
  if ( preg_match( "/.*".$search.".*/", $player['name'] ) )

se: http://dk.php.net/manual/en/function.preg-match.php

mvh JakobA
Avatar billede Slettet bruger
19. januar 2003 - 15:42 #9
Men i dette tilfælde som i så mange andre, er det vel overkill med regular expressions, og de indbyggende string funktioner tilstrækkelige.
Avatar billede jakoba Nybegynder
19. januar 2003 - 15:48 #10
mercur8 >> det har du ret i.  stristr(...)  gør det fint nok.
Avatar billede baronen20 Nybegynder
19. januar 2003 - 15:51 #11
jakoba> den virker fint nok! kan man gøre så den ikke er case-sensitive?
Avatar billede jakoba Nybegynder
19. januar 2003 - 16:00 #12
ja:
  if ( preg_match( "/.*".$search.".*/i", $player['name'] ) )

der er tilføjet et 'i' efter nr 2 '/' (case Insensitive)

mvh JakobA
Avatar billede baronen20 Nybegynder
19. januar 2003 - 16:17 #13
aiii for satan du er en vis mand :)
Avatar billede Slettet bruger
19. januar 2003 - 16:25 #14
baronen20: Hvad er grunden til at du bruger preg_match og ikke stristr?
Avatar billede baronen20 Nybegynder
19. januar 2003 - 16:31 #15
det virkede med det samme jeg kopierede det ind, det gjorde det andet ikke
Avatar billede Slettet bruger
19. januar 2003 - 16:33 #16
Ja ok. I rest my case.
Avatar billede dmcn Praktikant
19. januar 2003 - 21:40 #17
... no comments at all...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester