Avatar billede tobrukDk Novice
19. februar 2012 - 16:21 Der er 28 kommentarer og
1 løsning

frem vise kun noget af tekst

Hej

Jeg sidde ind på den her hjemmeside og det er sådan at jeg godt kunne tænke mig at for frem vist kun noget af tekst men jeg ved ikke lige helt hvordan man skal gøre det

Ved ikke lige hvordan jeg sådan 100% skal gøre det.
http://bookitall.dk/djs

ligesom jeg vise her på siden hvor der er rød box omkring
http://jesperbok.dk/pr.png
Avatar billede keysersoze Ekspert
19. februar 2012 - 16:35 #1
Det gøres normalt med dit serverside-sprog, hvor du tager fx de første 100 tegn af din oprindelige tekst - se fx http://php.net/manual/en/function.substr.php
Avatar billede tobrukDk Novice
19. februar 2012 - 16:53 #2
Okay men jeg har ikke rigtigt fundt ud af hvordan man gør det eller lign :( forstår det ikke helt :(
Avatar billede keysersoze Ekspert
19. februar 2012 - 17:08 #3
Kig på eksemplerne på mit link - de forklarer det ret godt selv for en ikke-PHP mand.
Avatar billede tobrukDk Novice
19. februar 2012 - 17:11 #4
ja okay men jeg tænke om man ikke kun gør det med css eller lign?

fordi hvis en bruger skrive en profil tekst på 100 og en anden skriver noget på 20 eller lign.. øhmm :(

jeg tror at jeg er ved at forstår det, men tekst skal komme fra databasen.. :)
Avatar billede keysersoze Ekspert
19. februar 2012 - 18:06 #5
Med CSS kan du teoritisk set godt styre det ved fx at benytte en div med fast størrelse og overflow hidden - det er bare potentielt performancemæssigt tungt da du så tvinger klienten til at loade uforholdsvismæssigt meget tekst. Men den eneste rigtige vej at gå er PHP.
Avatar billede Slettet bruger
19. februar 2012 - 18:08 #6
Det nærmeste du kan komme med css, må være "overflow: hidden;".
Avatar billede olebole Juniormester
19. februar 2012 - 18:33 #7
<ole>

Som de andre skriver, ligger løsningen på serveren. Du kan evt. prøve denne funktion:

<?php
$s = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nisi sem, mollis quis porttitor eu, volutpat id neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.';

function truncString($str, $len=100, $end='...') {
    if (strlen($str)<=$len) return $str;
    if (substr($str, $len, 1)===' ') return substr($str, 0, $len).$end;
    $str = substr($str, 0, $len);
    $str = substr($str, 0, strrpos($str, ' '));
    return $str.$end;
}

echo 'Forkort strengen til max. 100 tegn:<br>';
echo truncString($s);

echo '<hr>Forkort strengen til max. 120 tegn:<br>';
echo truncString($s, 120);

echo '<hr>Forkort strengen til max. 115 tegn og slut med et link:<br>';
echo truncString($s, 115, '... <a href="#">Læs mere</a>');
?>

/mvh
</bole>
Avatar billede tobrukDk Novice
19. februar 2012 - 20:23 #8

$table = ""; // tabelnavn her
$id = strip_tags($_GET["id"]);

$query = mysql_query("SELECT * FROM '". $table . "' WHERE id = '". $id . "'") or die(mysql_error());
$row = mysql_fetch_assoc($query);

echo substr($row["tekst"], 0, 20) . "...";


kan jeg lave det sådan`??
Avatar billede olebole Juniormester
19. februar 2012 - 20:38 #9
Ja, det kan du godt, men hvorfor ikke bruge funktionen ovenfor? Så slipper du for, at strengen bliver klippet midt i et ord.

function truncString($str, $len=100, $end='...') {
    if (strlen($str)<=$len) return $str;
    if (substr($str, $len, 1)===' ') return substr($str, 0, $len).$end;
    $str = substr($str, 0, $len);
    $str = substr($str, 0, strrpos($str, ' '));
    return $str.$end;
}

$table = ""; // tabelnavn her
$id = strip_tags($_GET["id"]);

$query = mysql_query("SELECT * FROM '". $table . "' WHERE id = '". $id . "'") or die(mysql_error());
$row = mysql_fetch_assoc($query);

echo truncString($row["tekst"], 20);
Avatar billede tobrukDk Novice
19. februar 2012 - 20:56 #10
Kan du forklare lidt hvad den gøre ole ? så ved jeg også det til en anden gange :D
Avatar billede olebole Juniormester
20. februar 2012 - 01:19 #11
Jeg prøver  =)

Funktionen kan modtage tre argumenter:
1) $str Strengen, som skal forkortes
2) $len Maksimal længde af den returnerede streng (Valgfri - default er 100 tegn)
3) $end Slutstreng efter den afkortede streng (Valgfri - default er '...')

function truncString($str, $len=100, $end='...') {
    // Hvis strengen $str ikke er længere end $len,
    // returneres hele strengen:
    if (strlen($str)<=$len) return $str;
   
    // Ellers hvis næste tegn efter $len antal tegn er et mellemrum,
    // må sidste tegn altså være det sidste tegn i et helt ord.
    // Derfor returnerer vi de første $len antal tegn af strengen - plus $end:
    if (substr($str, $len, 1)===' ') return substr($str, 0, $len).$end;
   
    // Ellers afkorter vi strengen til $len antal tegn:
    $str = substr($str, 0, $len);
   
    // Derefter afkorter vi strengen til lige før sidste mellemrum:
    $str = substr($str, 0, strrpos($str, ' '));
   
    // Vi returnerer den afkortede streng - plus $end:
    return $str.$end;
}
Avatar billede tobrukDk Novice
20. februar 2012 - 01:48 #12
Ohh Okay takke olebole. :) Det hjælp en del få hvordan man skulle forstår det..


Ole vil du have noget for det eller hvad?
Avatar billede tobrukDk Novice
20. februar 2012 - 12:21 #13
eller keysersoze ville du have dem?
Avatar billede keysersoze Ekspert
20. februar 2012 - 13:08 #14
ellers tak.
Avatar billede olebole Juniormester
20. februar 2012 - 15:53 #15
- og jeg modtager som sædvanligt heller ikke point  =)
Avatar billede tobrukDk Novice
21. februar 2012 - 14:09 #16
Okay men der er kommer en fejl frem :(


Notice: Undefined index: id in C:\xampp\htdocs\djinfo\djz.php on line 60
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''brugere' WHERE id = ''' at line 1


<div id="profiltekst">
                                <!--Profil tekst-->
                                    <?php
                                    function truncString($str, $len=50, $end='...') {
                                        if (strlen($str)<=$len) return $str;
                                        if (substr($str, $len, 1)===' ') return substr($str, 0, $len).$end;
                                        $str = substr($str, 0, $len);
                                        $str = substr($str, 0, strrpos($str, ' '));
                                        return $str.$end;
                                    }
                                   
                                    $table = "brugere"; // tabelnavn her
                                    $id = strip_tags($_GET["id"]);
                                   
                                    $query = mysql_query("SELECT * FROM '". $table . "' WHERE id = '". $id . "'") or die(mysql_error());
                                    $row = mysql_fetch_assoc($query);
                                   
                                    echo truncString($row["tekst"], 20);
                                    ?>
                                </div>



her kan i se databasen ; http://localhostr.com/files/DuzaCSp/capture.png
Avatar billede olebole Juniormester
21. februar 2012 - 14:20 #17
Der må ikke være gåseøjne om tabelnavnet:

$query = mysql_query("SELECT * FROM ". $table . " WHERE id = '". $id . "'") or die(mysql_error());

Hvis feltet id er et tal, må der heller ikke være gåseøjne om den værdi.

Til gengæld er det god kodeskik at backticke navne i et SQL-kald:

$query = mysql_query("SELECT * FROM `". $table . "` WHERE `id` = '". $id . "'") or die(mysql_error());

Også her gælder det, at du skal slette gåseøjnene omkring id-værdien, hvis det er et tal
Avatar billede tobrukDk Novice
21. februar 2012 - 16:18 #18
forstår ikke helt hvad du mener ole?
Avatar billede olebole Juniormester
21. februar 2012 - 18:56 #19
Okay, jeg jeg går udfra, dit id-felt indeholder tal. Hvis jeg kalder din tabel for my_table, kommer din SQL sætning kommer der til at stå:

$query = mysql_query("SELECT * FROM 'my_table' WHERE id = '123'") or die(mysql_error());

Der er ikke en lovlig SQL-sætning. Der må ikke være gåseøjne om my_table - og heller ikke om tallet 123.

Der skal ende med at stå:

$query = mysql_query("SELECT * FROM my_table WHERE id = 123") or die(mysql_error());

Altså væk med gåseøjnene!

Det regnes for bedre kodeskik - men som regel ikke nødvendigt - at skrive:
$query = mysql_query("SELECT * FROM `my_table` WHERE `id` = 123") or die(mysql_error());

- selvom man vist ikke lærer Jer den syntaks på RTS.

De små 'fluebæer' omkring navnene på tabellen og felterne kaldes backticks. Du finder dem ved at trykke Shift+` - efterfulgt af et mellemrum. Du finder tasten lige ved siden af ? og + tasten øverst til højre på keyboardet.

Håber, det hjalp  *o)
Avatar billede tobrukDk Novice
21. februar 2012 - 19:07 #20
skal jeg også gøre det når det er det er en profil tekst som skal frem vise..
Avatar billede olebole Juniormester
21. februar 2012 - 20:13 #21
Prøv - men umiddelbart vil jeg sige: Ja  =)
Avatar billede tobrukDk Novice
21. februar 2012 - 20:15 #22
okay jeg prøver lige :)
Avatar billede olebole Juniormester
21. februar 2012 - 20:50 #23
Du får nogen skide gode idéer, Jesper. Men hvorfor skal du hele tiden have dem af mig?  *D
Avatar billede tobrukDk Novice
21. februar 2012 - 21:42 #24
Det ved jeg sjovt nok ikke ole.. :) men nok fordi jeg ikke helt ved hvad jeg skal søge efter?
Avatar billede olebole Juniormester
21. februar 2012 - 22:03 #25
Det var nu mere den gode idé med at prøve, jeg tænkte på  *o)
Avatar billede tobrukDk Novice
22. februar 2012 - 00:50 #26
kommer med samme fejl og det fucker helt op.. og jeg forvirret og prøve lave om på det osv.. men det virker stadig ikke osv...
Avatar billede tobrukDk Novice
22. februar 2012 - 22:34 #27
hvad ske der siden at den blive ved med at lave fejl for mig :(
Avatar billede tobrukDk Novice
23. februar 2012 - 02:10 #28

<?php
                                $result = mysql_query("SELECT * FROM brugere INNER JOIN musik_info ON brugere.fk_musik_info=musik_info.musikid");
                                while($row = mysql_fetch_array($result))
                                    {
                            ?>
                            <div id="brugerinfo">
                                <div id="brugerinfotekst">
                                <!--Djnavn-->
                                    <h4><?php echo $row['djnavn'];?></h4>
                                </div>
                                <a href="profil.php?id=<?php echo $row['id'];?>">
                                <!--profil billedet-->
                                    <img src="picthumb/<?php echo $row['profilbillede'];?>" width="70" height="70" alt="djz" id="profilbillede">
                                </a>
                                <div id="profiltekst">
                                <!--Profil tekst-->
                                    <?php
                                        $s = $row['profiltekst'];

                                        function truncString($str, $len=100, $end='...') {
                                            if (strlen($str)<=$len) return $str;
                                            if (substr($str, $len, 1)===' ') return substr($str, 0, $len).$end;
                                            $str = substr($str, 0, $len);
                                            $str = substr($str, 0, strrpos($str, ' '));
                                            return $str.$end;
                                        }

                                        echo truncString($s, 80, '... <a href="#">Læs mere</a>');
                                    ?>
                                </div>
                                    <div id="info">
                                    <!--Infomation-->
                                        <ul>
                                            <li><?php echo $row['navn_musik'];?></li>
                                            <li><a href="profil.php?id=<?php echo $row['id'];?>">Profil</a></li>   
                                        </ul>
                                    </div>
                            </div>
                            <?php
                                    }
                            ?>



Sådan gøre jeg lige og fik det til at virker ! :D
Avatar billede tobrukDk Novice
23. februar 2012 - 17:06 #29
lukker den selv..
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