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>\"; }
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.
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.
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!
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
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
Synes godt om
Ny brugerNybegynder
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.