Avatar billede beerton Nybegynder
30. maj 2002 - 15:40 Der er 15 kommentarer og
2 løsninger

Udtrek kun en del af et databasefelt

Hej,

Jeg har et sporgsmaal til hvordan man udtraekker en del af et database.

Fx. I en database er der en table, med et felt hvor der indeholder dette:
"Gul hvid sort lilla pink"

Men der skal udtrekkes:
"Gul hvid"

Hvordan goeres dette?
Haaber i kan hjaelpe
Avatar billede gizmo-gizmo Nybegynder
30. maj 2002 - 15:43 #1
Kan du prøve at uddybe din forklaring lidt ?
Avatar billede ztyxx Nybegynder
30. maj 2002 - 15:47 #2
$streng = "Gul hvid sort lilla pink";
$streng = explode(" ", $streng);
   
    echo "$streng[0]  $streng[1]";
Avatar billede ztyxx Nybegynder
30. maj 2002 - 15:51 #3
explode deler en streng op, her er det defineret at det er mellemrum der skal dele strengen, det angives ved " ", og herefter hvilken variabel det er der skal deles, havde strengen set sådan ud:
"Gul,hvid,sort,lilla,pink"
var det ved kommaerne der skulle deles, så ville det være
explode(",", $streng)
Avatar billede ztyxx Nybegynder
30. maj 2002 - 15:51 #4
skulle være et svar
Avatar billede leflings Nybegynder
30. maj 2002 - 15:54 #5
måske mener du at du kun vil printe de 2 første ord i et hvilket som helst data felt?

$data = explode(" ", $datafelt);
echo $data[0];
echo $data[1];
Avatar billede leflings Nybegynder
30. maj 2002 - 15:55 #6
hov - sad vist lige og idlede lidt :D
Avatar billede ztyxx Nybegynder
30. maj 2002 - 16:01 #7
når man bruger explode, trækker man strengen ud i et array, og i dette eksempel er der fem "dele" i strengen, som bliver opdelt i den rækkefølge de står i strengen, og læg mærke til at der ALTID startes med 0, så i princippet ser dit script, for illustrationens skyld sådan ud:

<?php
$streng[0] = "Gul";
$streng[1] = "hvid";
$streng[2] = "sort";
$streng[3] = "lilla";
$streng[4] = "pink";

    echo "$streng[0]  $streng[1]";
?>
Avatar billede beerton Nybegynder
30. maj 2002 - 16:20 #8
Jeg uddyber lige.

Jeg har en tabel med nyheder.
Nyhedstabellen indeholder blandt andet id, dato, overskrift og text.

Paa forsiden af websiden vil jeg gerne vise den seneste nyhed med overskrift, og en del af indeholdet fra text. Det kunne f.eks vaere de foerste 100 ord.
Hvordan laver jeg et php-script med denne funktion?
Avatar billede leflings Nybegynder
30. maj 2002 - 16:25 #9
print(substr($tekst, 0, 100));
Avatar billede leflings Nybegynder
30. maj 2002 - 16:28 #10
Hov - den viser jo kun de første hundrede bogstaver... :D


lige et spørgsmål til de kloge:

ville en explode(" ",$tekst) være for tung på en lang tekst?
og så derefter lave en for($i=1;$i<=100;$i++) { echo $tekstarray[$i]; }

?
Avatar billede repsac Nybegynder
30. maj 2002 - 16:42 #11
explode er hurtigere end noget reg.exp. hvis det er det du tænker på.
Avatar billede leflings Nybegynder
30. maj 2002 - 16:45 #12
Men er den for tung for serveren hvis teksten nu f.eks er på 3000 bogstaver - så bliver det et stort array , men det er ikke så krævende for serveren eller?
Avatar billede leflings Nybegynder
30. maj 2002 - 16:59 #13
men hvis den ikke er, så vil mit forslag til de 100 første ord være:

<?
$tekstarray = explode(" ",$tekst);
for($i=1;$i<=100;$i++);
  {
      echo $tekstarray[$i];
  }
?>
Avatar billede repsac Nybegynder
30. maj 2002 - 18:04 #14
Det kommer jo an på hvor hurtig din server er... prøv evt. at teste det...
Avatar billede tipsen Nybegynder
31. maj 2002 - 01:00 #15
Hvis nyhederne er *meget* lange, kan det måske betale sig kun at udtrække de 100 ord fra databasen - dvs. begrænse sig allerede dér!
Avatar billede ztyxx Nybegynder
14. juni 2002 - 23:20 #16
lukketid???
Avatar billede ztyxx Nybegynder
22. august 2002 - 21:54 #17
takker :-)
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