Avatar billede jd Nybegynder
15. august 2000 - 21:24 Der er 13 kommentarer og
1 løsning

artikel i flere kolonner?

Hey,

Er her nogen der kan forklare mig hvordan jeg får vist en text fra en db i flere kolonner?

/Jon@z
Avatar billede razor Nybegynder
15. august 2000 - 21:27 #1
*lytter lige med*
Avatar billede fico Nybegynder
15. august 2000 - 21:36 #2
*Me too*
Avatar billede mkelle1 Nybegynder
15. august 2000 - 21:55 #3
Er det du mener, at du gerne vil vise en lang text, således at den er i flere spalter, som i en avis?
Avatar billede morw22 Nybegynder
15. august 2000 - 22:57 #4
Det er ikke rigtig noget html kan. Så skal du først dele teksten op i 2 og derefter sætte dem ind i hver sin celle
Avatar billede fmadse1 Nybegynder
16. august 2000 - 08:49 #5
Skal texten ikke bare hærges ind i nogen <table>\'s?
Avatar billede jd Nybegynder
16. august 2000 - 12:05 #6
mkelle1->> ja!

morw22->> det kan da ikke passe!? man må da kunne gøre i PHP/MySQL så artiklen aotumatisk vises i spalter!?

fmadse1->> jo, men hvordan, når jeg jo ikke ved hvor lang texten er!?

/Jon@z
Avatar billede mkelle1 Nybegynder
18. august 2000 - 17:51 #7
Hej Jonaz

Så har jeg en løsning på problemet.

Exemplet er \"med det hele\" så det er lige til at afprøve.

Go\'  fornøjelse
Mads

<html>
<head>
<title>spalter</title>
</head>

<body>
<?
//Denne øverste del er blot nogle komandoer til at skabe en tabel
//med en post i. De er udkommenteret da jeg jo ikke ønsker at genskabe dem hver
//gang jeg afvikler siden.

$c=mysql_connect(\"localhost\",\"\",\"\");
$db=\"spalter\";
//mysql_create_db($db);
//mysql_drop_db($db);
//$sql=\"create table tekst(id int not null auto_increment,tekst longtext,primary key(id))\";

//$sql=\"insert into tekst (tekst) values(\'Eksperten gik i luften efteråret 1998, og er siden vokset til, nok det mest benyttede site indenfor sit felt i Danmark. Vi beskæftiger os med udveksling af viden på kryds og tværs, mellem mennesker og virksomheder indenfor IT. Eksperten er kendetegnet ved et højt fagligt niveau hvor de fleste, viden til trods, har mulighed for at lære noget. Det er vores mål fortsat at udvikle mulighederne for brugerne af Eksperten, med respekt for de nuværende elementer, som allerede har vist sit værd. Her kan nævnes anvendelsen af point, så man som ekspert, har mulighed for at måle sin viden med andre, og dermed profilere sig positivt. Fremtiden på Eksperten vil i høj grad være præget af løbende forbedringer, ikke mindst på baggrund af de forslag som brugerne kommer med.Brugerne har gjort Eksperten til det den er i dag, og sådan vil det også være i fremtiden.\')\";

         
//mysql_db_query($db,$sql);
?>


<?
//Her kommer så selve scriptet som skriver ud i spalter

//Jeg trækker en enkelt post ud af tabellen tekst
$sql=\"select * from tekst where id=1\";
$result=mysql_db_query($db,$sql);
$row=mysql_fetch_row($result);

//Opretter en variabel med teksten fra databasen i.
$tekst=$row[1];

//Finder antallet af karakterer i teksten
$antalkarak=strlen($tekst);

//Sætter antallet af karakterer der skal være i en spalte
$sp_len=250;
//echo $antalkarak;
//echo \"<br>\";

//Initialiserer hvor vi starter i teksten
$spalte_start=0;
$i=1;

echo \"<table><tr>\";

//Løber teksten igennem så mange gange som der bliver spalter
while($i<=($antalkarak/$sp_len+1))
    {
    //Klipper et stykke tekst ud der ligger lige efter spaltelængden   
    $test=substr($tekst,$spalte_start+$sp_len,30);

    //Finder positionen for det første mellemrum
    $pos=strpos($test,\" \");
   
    //Sætter det aktuelle antal karakterer i spalten
    $aktuel_spalte_len=$sp_len+$pos;
   
    //Lægger teksten til spalten over i en variabel
    $spalte_tekst=substr($tekst,$spalte_start,$aktuel_spalte_len);

    //Sætter positionen for næste spaltes startpunkt
    $spalte_start=$spalte_start+$aktuel_spalte_len;
   
    //Tæller op
    $i++;

    //skriver spalteteksten ud i en tabelcelle. width = spaltebredde
    echo \"<td width=200 valign=\'top\'>$spalte_tekst</td>\";
    }



echo \"</tr></table>\";
?>


</body>
</html>
Avatar billede mkelle1 Nybegynder
18. august 2000 - 19:01 #8
Hej Jonaz

En lille tilføjelse, som sikre at det allersidste ord i en artikel ikke går hen og bliver delt forkert (d.v.s. et eller andet tilfældigt sted midt i ordet).

Så istedet for:
//Finder positionen for det første mellemrum
    $pos=strpos($test,\" \");

skal du indsætte:


    //Finder positionen for det første mellemrum hvis der er et
    if (strstr($test,\" \"))
        {
        $pos=strpos($test,\" \");
        }
    else
        {
        //Ellers klippe et stykke tekst ud som ligger lige før spaltelængde
        $test=substr($tekst,$spalte_start+$sp_len-30,30);
       
        //og finder hvormange karakterer tilbage mellemrummet er.
        $pos=-strlen(strrchr($test,\" \"));

        }



Iøvrigt: Jeg har sat det teststykke hvor man leder efter et mellemrum til 30 karakterer, men jeg har ikke spekuleret over om det er nok - hvis det er svære artikler med meget fagsprog kan der sikkert optræde ord som er længere end 30 karakterer, og så må den jo sættes op.

Hilsen
Mads
Avatar billede mkelle1 Nybegynder
18. august 2000 - 20:08 #9
Hej Jonaz

Jeg har lige været i Føtex for at handle lidt ind, og på vejen tænkte jeg lidt videre.

Hvis man med et javascript fra den side der linker til ovenstående php side fik sendt skærmbredden med, kunne man alt er bredde, beslutte om det skulle skrives i 1,2,3, eller 4 spalter. Så kunne man sætte $sp_len = $antalkarak/$antalspalter rundet op til nærmest hele tal. Så kunne man ligeledes sætte bredden på tabelcellen til $skærmbredde/$antalspalter minus et eller andet så det så pænt ud. Derudover kan man jo også sætte et maximum antalkarakterer i en spalte, så den ikke bliver kilometerlang, og så går videre med en ny <tr> når den første række spalter er fyldt. Der er faktisk mange muligheder for at formatterer tekst fra en database i spalter, så det kan komme til at se pænt ud.

Hilsen

Mads
Avatar billede jd Nybegynder
18. august 2000 - 20:17 #10
mkelle1->> hehe...jeg kan godt lide at du går og tænker på mit spm. mens du går i føtex! :o)
Det ser rigtig godt ud!! -jeg kan ikke komme til at teste det lige nu, men en gang i aften!Jeg synes dog at du fortjener flere point for det store stykke arbejde! -point bliver sat op når det er testet!

/Jon@z
Avatar billede jd Nybegynder
19. august 2000 - 23:28 #11
det er nu testet, og det virker jo som smurt! :o)
-hvad siger du til 100 points? :o)

/Jon@z
Avatar billede jd Nybegynder
20. august 2000 - 21:59 #12
nå, så for du 120! -håber du er tilfreds! :o)

/Jon@z
Avatar billede mkelle1 Nybegynder
21. august 2000 - 01:02 #13
<<jonaz

Det var ikke fordi jeg var utilfreds - jeg har bare været væk hele weekenden, så jeg har ikke haft en chance for at se dine kommentarer. - Jeg er helt tilfreds med både 100 og 120 point.
For mig er det mest en udfordring når jeg finder et spændende spørgsmål.
Vi mødes sikkert igen her på kanalen

Mads
Avatar billede jd Nybegynder
21. august 2000 - 14:26 #14
Jeg regnede heller ikke med at det var fordi du var utilfreds! :o)
Men jeg vil med glæde belønne et så godt stykke arbejde!!
Ja, vi ses nok...

/Jon@z
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