Avatar billede Slettet bruger
14. november 2005 - 22:51 Der er 17 kommentarer og
1 løsning

mere end 25 bokstaver sætte 3 punktumere

Hej

Jeg kunne godt tænke mig der er der kom til at stå 3 punktumere hvis overskrften var længere end fx 25 tegn. min kode ser så ledes ud

----- start -----

<?php
include('connect.php');
$query = mysql_query("SELECT * FROM kursus_kat") or die(mysql_error());
while ($kursus_kat = mysql_fetch_assoc($query)) {
    if ($i++ != 0)
    echo "&nbsp;- <a href='?mode=kurser&katid=$kursus_kat[katid]' class='other_text' title='$kursus_kat[beskrivelse]'>";
    echo substr($kursus_kat[title], 0, 25);
    echo "</a><br>";
    }
?>

----- Slut -----

Hvordan laver jeg det ???

På forhånd tak!
Avatar billede yezbarh Nybegynder
14. november 2005 - 22:55 #1
substr($row["tekst"], 0, 50);

<?php
include('connect.php');
$query = mysql_query("SELECT * FROM kursus_kat") or die(mysql_error());
while ($kursus_kat = mysql_fetch_assoc($query))
{
    if ($i++ != 0)
    echo "&nbsp;- <a href=\"?mode=kurser&katid=". $kursus_kat[katid] ."\" class=\"other_text"\ alt=\"". $kursus_kat[beskrivelse] ."\">";
    echo substr($kursus_kat["title"],0, 25);
    echo "</a>...<br>";
    }
?>
Avatar billede steven_ Nybegynder
14. november 2005 - 22:58 #2
if (isset($variabel) && strlen($variabel) >= 25)
{
    echo substr($variabel, 0, 25) . " ..";
}
Avatar billede yezbarh Nybegynder
14. november 2005 - 22:58 #3
Hov - ja. Mistod lige lidt.

Beklager...!
Avatar billede hmortensen Nybegynder
14. november 2005 - 22:59 #4
echo (strlen($kursus_kat['title']) > 25) ? substr($kursus_kat['title'], 0, 25)."..." : $kursus_kat['title'];
Avatar billede yezbarh Nybegynder
14. november 2005 - 23:01 #5
Ellers kan du jo også bare:

<?php
$titel = "massere tekst!";
if (count($titel) >= 25)
{
    print "". $titel ."...";
    } else {
    print "". $titel ."";

}
Avatar billede hmortensen Nybegynder
14. november 2005 - 23:04 #6
yesbarh, count tæller elementer i et array, hvorimod strlen tæller antal tegn i en streng. Ydemere vil dit eksempel blot tilføje "..." til slut, uden at afkorte strengen.
Avatar billede yezbarh Nybegynder
14. november 2005 - 23:06 #7
Jep, beklager..
Fandt jeg lige ude af.

Håber i kan have mig undskyld.
Avatar billede Slettet bruger
14. november 2005 - 23:06 #8
Tak for alle svarende. hmm det hurtigste var at tage hmortensen den var lige til at sætte ind. derfor har jeg valgt han skulle have de 10 point. så lig et svar hmortensen
Avatar billede Slettet bruger
14. november 2005 - 23:06 #9
der går nok yezbarh :) det kan ske for hvem som helst
Avatar billede hmortensen Nybegynder
14. november 2005 - 23:08 #10
Det var så lidt.

yesbarh, var ikke for at nedrakke dig, blot en information, så ingen grund til at undskylde ;)
Avatar billede steven_ Nybegynder
14. november 2005 - 23:17 #11
hmm. personen som poster svaret du ikke behøver tænke over, bør få pointene - ligegyldigt hvem der først poster et brugbart svar? hmm

måske du skulle smide dit spørgsmål under http://www.eksperten.dk/spm/Opgaver/Programmeringsopgaver/PHP/, hvis det er sådan du mener det hænger sammen.
Avatar billede hmortensen Nybegynder
14. november 2005 - 23:27 #12
Steven, du må da gerne få pointene, ikke det der er vigtigt for mig, men at hjælpe spørger.

Men hvorfor bruger du isset(), variablen vil altid være sat. Og hvis strengen er under 25 tegn, hvad udskrives så?
Avatar billede jaw Nybegynder
14. november 2005 - 23:35 #13
Du kan jo også gøre det i udtrækket:
SELECT *, CONCAT(LEFT(title,170),'...') as title_kort FROM kursus_kat
...og så bruge echo $kursus_kat['title_kort'];

:)
Avatar billede jaw Nybegynder
14. november 2005 - 23:35 #14
170 skal så selvfølgelig lige være 25, beklager!
Avatar billede steven_ Nybegynder
14. november 2005 - 23:43 #15
hmortensen -> de er bestemt heller ikke vigtige for mig. men ikke engang et tak var at høre.

vi ønsker vel alle at deles om et så hyggeligt community som muligt, hvori der kan hjælpes og minde folk om scripts og muligheder til at udføre deres idéer. -> hvilket jeg bestemt ikke var tilfældet i dette spørgsmål.
Avatar billede steven_ Nybegynder
14. november 2005 - 23:46 #16
hmortensen -> iøvrigt vil jeg lige svare dig på dine spørgsmål '-)

1) jeg vil tro du kører hos en udbyder - og den udbyder dækker sikkert dine programmeringsfejl. fjern lige disse dækninger af fejl med "ini_set("error_reporting", E_ALL);" og kør dit script.

--- jeg er ret sikker på den vil fejle :)

2) det regnede jeg med, at han selv kunne regne ud. hvis en bruger der ikke ved hvordan man finder antal tegn i en streng i en variabel - så tror jeg ikke du skal regne med at man kan overskue din løsning :) - men jeg havde da helt sikkert selv gjort det på din måde -> blot med isset() :P
Avatar billede olebole Juniormester
15. november 2005 - 01:36 #17
<ole>

Hvis der i tabellen, man requester, indeholder et felt, der hedder 'title', vil variablen altid være sat - og så er det overkill at skrive:
    if ( isset($kursus_kat["title"]) )

/mvh
</bole>
Avatar billede hmortensen Nybegynder
15. november 2005 - 08:03 #18
Og jaw, vi kan gå videre ;)
SELECT katid, beskrivelse, IF(LENGTH(title) > 25, CONCAT(LEFT(title, 25), '...'), title) AS title  FROM kursus_kat
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