Avatar billede super-mann Juniormester
15. januar 2007 - 01:21 Der er 17 kommentarer og
1 løsning

vis max antal tegn med php

Hejsa

Jeg har nedenstående script, som henter oplysninger fra min database. Scriptet skal vise de sidste 5 nyheder i min menu, som vi kender det her fra eksperten.dk.

Problemet er, at den viser hele overskriften. Hvordan sætter jeg max antal tegn på, som skal vises? Og når man så holder musen henover skal hele overskriften vises.

Nogle som udfra nedenstående kildekode, kan indsætte sådan en regel.

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';
    echo '<a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a>';
}
?>
Avatar billede michaeltryl Seniormester
15. januar 2007 - 01:29 #1
her kan du læse hvordan du tager dele af en streng ud
http://www.phpartikler.dk/artikler/strinfunctions.php#substr

dit link skal sådan ud:
<a title="hele overskriften" href="link-her">forkortet tekst</a>
Avatar billede super-mann Juniormester
15. januar 2007 - 01:42 #2
michaeltryl -->
Det ser ud til at virke, hvis man gør efter den vejledning. Men hvordan implementeres dette så sammen med udbyttet fra databasen?
Avatar billede michaeltryl Seniormester
15. januar 2007 - 01:46 #3
f.eks

<?
$overskrift = $row['title'];
$start = 0;
$langde = 30;
$forkortet = substr($overskrift, $start, $langde);
echo"<a title='$overskrift' href='link-her'>$forkortet</a>";
?>
Avatar billede super-mann Juniormester
15. januar 2007 - 01:55 #4
Får fejl på denne:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';

$start = 0; //Hvor ønsker vi at starte? 0 er fra begyndelsen af strengen
$langde = 30; //Vi tager 30 tegn frem
$forkortet = substr($str, $start, $langde); //Udfør funktionen, og gem resultatet i en variabel


<a title=".$row['title']." href="news.display.php?id='.$row['id'].'">.$row['forkortet'].</a>

}
?>
Avatar billede super-mann Juniormester
15. januar 2007 - 01:56 #5
Ah, en lille fejl. retter lige
Avatar billede super-mann Juniormester
15. januar 2007 - 02:00 #6
Så er der rettet lidt til, men jeg får fortsat en fejl:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';

$start = 0; //Hvor ønsker vi at starte? 0 er fra begyndelsen af strengen
$langde = 30; //Vi tager 30 tegn frem
$forkortet = substr($str, $start, $langde); //Udfør funktionen, og gem resultatet i en variabel


echo '<a title=".$row['title']." 'href="news.display.php?id='.$row['id'].'">'.$row['forkortet'].'</a>';

}
?>
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:02 #7
$row['forkortet'].' skal kun være $forkortet hvis du stadig får fejl så skriv hvilken fejl du får så er det nemmere at hjælpe
Avatar billede super-mann Juniormester
15. januar 2007 - 02:05 #8
Får stadig en fejl.

Fejlen er: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:08 #9
prøv lige denne echo istedet
echo "<a title='".$row['title']."' href='news.display.php?id=".$row['id']."'>".$row['forkortet']."</a>";
Avatar billede super-mann Juniormester
15. januar 2007 - 02:11 #10
Nu kommer der ingen fejl og kan se, at siden er blevet længere men der vises intet. Der er bare "tomt".
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:12 #11
der var lige en lille fejl $row['forkortet'].' var ikke rettet til $forkortet

echo "<a title='".$row['title']."' href='news.display.php?id=".$row['id']."'>$forkortet</a>";
Avatar billede super-mann Juniormester
15. januar 2007 - 02:15 #12
Det hjalp ikke møj desværre - den viser fortsat bare et tomrum, men ingen tekst. Al kode ser sådan ud, lige for at opdatere lidt:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';

$start = 0; //Hvor ønsker vi at starte? 0 er fra begyndelsen af strengen
$langde = 30; //Vi tager 30 tegn frem
$forkortet = substr($str, $start, $langde); //Udfør funktionen, og gem resultatet i en variabel

echo "<a title='".$row['title']."' href='news.display.php?id=".$row['id']."'>$forkortet</a>";

}
?>
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:22 #13
prøv lige følgende

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';

$start = 0; //Hvor ønsker vi at starte? 0 er fra begyndelsen af strengen
$langde = 30; //Vi tager 30 tegn frem
$forkortet = substr($str, $start, $langde); //Udfør funktionen, og gem resultatet i en variabel
$titel = $row['title'];
echo"$titel - $forkortet";
}
?>
Avatar billede super-mann Juniormester
15. januar 2007 - 02:26 #14
Nu viser den de 5 sidste nye nyheder. Link og forkortelse virker dog ikke, men mangler også den sidste del.
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:28 #15
her er fejlen der er intet som bliver forkortet. $str i denne linie findes ikke
$forkortet = substr($str, $start, $langde)

prøve dette

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis,author,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br><br>';

$titel = $row['title'];
$start = 0; //Hvor ønsker vi at starte? 0 er fra begyndelsen af strengen
$langde = 30; //Vi tager 30 tegn frem
$forkortet = substr($titel, $start, $langde); //Udfør funktionen, og gem resultatet i en variabel

echo "<a title='".$row['title']."' href='news.display.php?id=".$row['id']."'>$forkortet</a>";

}
?>
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:28 #16
det skullle have været et svar
Avatar billede super-mann Juniormester
15. januar 2007 - 02:33 #17
Åh, mig tåbe.. Det er små overskrifter jeg bruger som test hehe - sorry!
- du får dine point her og tak for hjælpen...
Avatar billede michaeltryl Seniormester
15. januar 2007 - 02:36 #18
så lidt
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