adre Skrevet 5. mai 2012 Del Skrevet 5. mai 2012 (endret) Hei. Jeg jobber med og lage en nettside. Men jeg har noen problemer med søkefunksjonen. Jeg har kommet så langt at jeg får resultater. Problemet er at søkresultatene blir alt for lange. (Den viser hele innlegget). Så jeg vill prøve og lage noe ala google's søk bare på nettisden. Med forkortede innlegg i søket. Hvis dere også kan hjelpe meg med hvordan jeg kan legge søkene i side (<forje 1 2 3 4 5 neste>) Hadde dette vært fint. Håper noen har svar på dette. Jeg vet at det er mye som fortsatt mangler. search.php Endret 5. mai 2012 av adre Lenke til kommentar
MikkelRev Skrevet 5. mai 2012 Del Skrevet 5. mai 2012 (endret) For å korte ned søkeresultatet (hvis jeg forstår deg riktig), kan du bruke noe alá LEFT(post, 50) i spørringen din. Da vises kun de 50 første tegnene i artiklene på resultatsiden din. Hva mener du med google-søk? Til det andre spørsmålet ditt, så les deg opp på paginering. Google det Ja det er alltid noe som mangler. For sikkerhetsskyld bør du kjøre mysql_real_escape_string() på $searchw. Endret 5. mai 2012 av MikkelRev Lenke til kommentar
Yawa Skrevet 1. juni 2012 Del Skrevet 1. juni 2012 php.net/substr: // L:24 echo substr($row ['post'],0,155); Dette vil resultere i at kun de første 155 tegna (inkl. mellomrom, punktum etc.) vil bli vist i resultatet... Lenke til kommentar
MikkelRev Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 php.net/substr: // L:24 echo substr($row ['post'],0,155); Dette vil resultere i at kun de første 155 tegna (inkl. mellomrom, punktum etc.) vil bli vist i resultatet... Blir ikke det å hoppe over bekken for å hente vann når du kan bruke LEFT() i spørringen direkte? 1 Lenke til kommentar
etse Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 php.net/substr: // L:24 echo substr($row ['post'],0,155); Dette vil resultere i at kun de første 155 tegna (inkl. mellomrom, punktum etc.) vil bli vist i resultatet... Blir ikke det å hoppe over bekken for å hente vann når du kan bruke LEFT() i spørringen direkte? Jo, i tillegg blir det å kreve mer ressurser da det betyr at1: SQL spørringen må hente ut hele teksten, noe som kan bety lesing av flere datablocks og flere IO-operasjoner 2: Hele tekst-strengen må sendes til PHP-serveren 3: PHP må lagre hele strengen i minne. Med andre ord bruker det mer tid og ressurser på å gjøre det samme. Så ville helt klart gått for å bruke metoden din. Lenke til kommentar
Yawa Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 sant det, men kom med det som et alternativ siden LEFT() begrenser hva som sendes tilbake fra databasen mens substr() manipulerer resultatet i etterkant så begge deler er tilgjenglig om nødvendig... Men akkurat i dette tilfellet ville jeg gått for LEFT() Lenke til kommentar
Ernie Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 php.net/substr: // L:24 echo substr($row ['post'],0,155); Dette vil resultere i at kun de første 155 tegna (inkl. mellomrom, punktum etc.) vil bli vist i resultatet... Blir ikke det å hoppe over bekken for å hente vann når du kan bruke LEFT() i spørringen direkte? Jo, i tillegg blir det å kreve mer ressurser da det betyr at1: SQL spørringen må hente ut hele teksten, noe som kan bety lesing av flere datablocks og flere IO-operasjoner 2: Hele tekst-strengen må sendes til PHP-serveren 3: PHP må lagre hele strengen i minne. Med andre ord bruker det mer tid og ressurser på å gjøre det samme. Så ville helt klart gått for å bruke metoden din. … pluss at med tanke på all direkte latskapen som flyter rundt Unicode og UTF-8, er det langt større sjanse for at LEFT er multibyte-aware og ikke bryter av midt i et multibyte-tegn. Substr med familie vil veldig enkelt kunne gjøre det så lenge man bare teller bytes (noe «alle» gjør). Lenke til kommentar
Yawa Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 hva mener dere nå her? At hvis man benytter "å" isteden for "å" o.l i databasen? heh... Lenke til kommentar
Ernie Skrevet 3. juni 2012 Del Skrevet 3. juni 2012 (endret) Det jeg mener er at en tekststreng med UTF-8-enkoding kan ha tegn som fordeler seg over flere byte-er. Typiske eksempler på dette er æ, ø og å, hvor f.eks. å er enkodet som 0xC3 0xA5. Hvis man f.eks har 'testå-abc' og ønsker bare de 4 første tegnene får man 'test0xC3' (0xC3 illusterer her en enkeltbyte) hvilket ikke er en gyldig UTF-8-streng og derfor vises som 'test�' (det siste tegnet er U+FFFD som er et erstatningstegn for gyldige kodepunkter. Det ser normalt sett ut som en svart diamant med et hvit spørsmålstegn inni). Det man i stedet ønsket seg er 'testå'. For å få det trenger man noe som veit hva UTF-8 er, og det har en standard installasjon av PHP ingen som helst anelse om. Man kan bruke mbstring, men det er sist jeg sjekket en implementasjon med enkelte særs grove feil, dog allikevel den best og mest utbredte. Har man derimot en database er det betraktelig mye større sjanse for at den veit hva UTF-8 er og LEFT vil dermed helt automatisk vite hvor man faktisk skal bryte av. Et mer komplisert eksempel: echo substr('Iñtërnâtiônàlizætiøn', 0, 12); gir 'Iñtërnâti'. Det er gyldig UTF-8, men er ikke 'Iñtërnâtiônà' som er det man forventer. Redigering: Jeg ser ut fra mailen som ble sendt ut ifm. innlegget ditt at du mener å vs. & aring;. Mitt svar til det er at HTML-entiteter er en styggdom man aldri bør bruke (XML-entiteter er noe helt annet). Endret 3. juni 2012 av Ernie 1 Lenke til kommentar
Yawa Skrevet 4. juni 2012 Del Skrevet 4. juni 2012 Jeg har ikke vert borte i noe problemer rundt å bruke substr(), men igjen så har det vert svært sjeldent at tegn som "ñëâôà" har forekommet hos meg da. Så alikevel viktig å ta høyde for. Nyttig info å ta med seg videre... Lenke til kommentar
Gjest Skrevet 13. juni 2012 Del Skrevet 13. juni 2012 Kan jeg legge til at koden er full av sikkerhetshull? Lenke til kommentar
aktiv Skrevet 17. juni 2012 Del Skrevet 17. juni 2012 Kan jeg legge til at koden er full av sikkerhetshull? Du kan jo fortelle han hva du tenker på da! Sånn at han kan gjøre noe med det! Lenke til kommentar
MikkelRev Skrevet 18. juni 2012 Del Skrevet 18. juni 2012 Jeg gjorde det i 2.post, men trådstarter har ikke dukket opp igjen etter han startet tråden, så det er ikke vits å bombardere han med flere gode tips som han kanskje ikke engang leser. Lenke til kommentar
aktiv Skrevet 18. juni 2012 Del Skrevet 18. juni 2012 Ja, så det Jeg tenkte på selve innlegget hans. Siden din er full av sikkerhetshull! Greit å komme med noen tips om hva han kan gjøre. Men som du sier, virker ikke som trådstarter leser noe av det som blir skrevet! Lenke til kommentar
adre Skrevet 16. september 2012 Forfatter Del Skrevet 16. september 2012 (endret) Jeg mistet nettet når jeg var på ferie. Så glemte jeg at jeg hadde postet dette inlegget. Sorry Men jeg er helt ny i PHP så jeg kjenner ikke noe om sikkerhet. Så ønsker alle sikkerhets tips. Men hvor og hvorden bruker jeg LEFT()??? Endret 16. september 2012 av adre Lenke til kommentar
Yawa Skrevet 16. september 2012 Del Skrevet 16. september 2012 SELECT LEFT(column_name, 25) FROM table_name Dette vil hente ut de 25 første tegna fra venstre mot høyre... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå