Erik B. Skrevet 4. oktober 2006 Skrevet 4. oktober 2006 Hei, arbeider med en mer avansert gjestebok. I admin panelet skal man få en kort oversikt over alle innleggene. Det vil jeg gjøre ved å vise de 20 første bokstavene i kollonnen, evt. de 5 første ordene om det er mulig. Et eksempel: I kollonnen står det: Hei, dette var en morsom side, har du malt rommet ditt nå? Blablablablabla... Skal bli forkortet til: Hei, dette var en morsom ... Må sikkert ta i bruk LIMIT her? Bruker MySQL. Takker for svar
Thullball Skrevet 4. oktober 2006 Skrevet 4. oktober 2006 (endret) Skal du programmere dette i PHP? Isåfall kan du benytte følgende kode for å få ut de første 20 tegnene PHP echo substr('abcdef', 0, 4); // abcd Bytt ut abcdef med innholdet i databasen og 4 med 20 så funker det.. LIMIT vil bare sortere på linjene i en database, hvis du eks. har 10 innlegg i din tabell og setter LIMIT til 3 i SELECT setningen din så vil den kun liste ut 3 innlegg i record set. Den vil ikke sette noe begrensninger på innholdet i filen. Endret 4. oktober 2006 av KurtGandalf
Ernie Skrevet 4. oktober 2006 Skrevet 4. oktober 2006 Går da an å bruke LEFT(tabell, antall tegn) til det her?
endrebjo Skrevet 4. oktober 2006 Skrevet 4. oktober 2006 (endret) Går da an å bruke LEFT(tabell, antall tegn) til det her? 7002513[/snapback] Jepp. Best det. (LEFT()) SELECT LEFT(kolonne, 20) FROM tabell; Men husk at det kan bli seende litt rart ut hvis den kutter midt i f.eks å (html-kode for 'å') hvis du lagrer spesialtegn slik i databasen. Endret 4. oktober 2006 av endrebjorsvik
Erik B. Skrevet 4. oktober 2006 Forfatter Skrevet 4. oktober 2006 Brukte KurtGandalf's eksempel. Funker bra. Uten om at Å og sånn blir kuttet da^^
endrebjo Skrevet 5. oktober 2006 Skrevet 5. oktober 2006 (endret) Bortsett fra at det er unødvendig å sende data som ikke blir brukt fra SQL-serveren til PHP-motoren. Edit: For å få de fem første ordene kan du bruke explode() og sette sammen igjen. PHP <?php $words = explode(' ', $string); $output = ''; for ($i = 0; $i <= 4; $i++) { $output .= $words[$i] . ' '; } ?> Endret 5. oktober 2006 av endrebjorsvik
allyse Skrevet 6. oktober 2006 Skrevet 6. oktober 2006 Går da an å bruke LEFT(tabell, antall tegn) til det her? 7002513[/snapback] IKke hvis du ønsker å kunne porte koden til f.eks oracle. LEFT fungerer ikke der. Du kan hvis jeg husker korrekt bruke Substr(input, num,num) i mysql også. Jeg veit ikke hvordan dette fungerer i andre db enn oracle, men det virker som en ganske global metode.
roac Skrevet 7. oktober 2006 Skrevet 7. oktober 2006 Går da an å bruke LEFT(tabell, antall tegn) til det her? 7002513[/snapback] Ikke hvis du ønsker å kunne porte koden til f.eks oracle. LEFT fungerer ikke der. Du kan hvis jeg husker korrekt bruke Substr(input, num,num) i mysql også. Jeg veit ikke hvordan dette fungerer i andre db enn oracle, men det virker som en ganske global metode. 7015470[/snapback] Hvis du skal gjøre dette standard, så skal funksjonen hete SUBSTRING og ikke SUBSTR (Ref SQL:2003 standarden). Både Microsoft SQL Server, Sybase, IBM DB2, MySQL og PostgreSQL støtter dette, Oracle gjør det ikke (såvidt jeg vet) og har valgt å kalle funksjonen for substr isteden.
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å