Avatar billede ppb Nybegynder
10. april 2007 - 21:04 Der er 35 kommentarer og
1 løsning

Begrænset nyhed.

$nyhed = mysql_query("SELECT * FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());

    if(mysql_num_rows($nyhed) > 0) {

På forsiden af min hjemmeside, vises sidste nye nyhed fra min nyhedsside.
Men jeg ønsker kun, at vise overskriften og de første 25 karakterer af nyheden.
Hvordan gør jeg det?

Scriptet som jeg bruger:

            while ($nyheden=mysql_fetch_array($nyhed)) {
                echo "<div style=\"font-size: 18px; font-family: Century Gothic;\"><b>".$nyheden['overskrift']."</b></div>";
                echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".$nyheden['nyhed']."</div>";
                echo "<div style=\"padding-left: 10px;\"><i>  ".$nyheden['dato']."</i></div><br>";
Avatar billede ppb Nybegynder
10. april 2007 - 21:06 #1
Prøver lige igen, uden copy/paste fejl.

På forsiden af min hjemmeside, vises sidste nye nyhed fra min nyhedsside.
Men jeg ønsker kun, at vise overskriften og de første 25 karakterer af nyheden.
Hvordan gør jeg det?

Scriptet som jeg bruger:

$nyhed = mysql_query("SELECT * FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());

    if(mysql_num_rows($nyhed) > 0) {

            while ($nyheden=mysql_fetch_array($nyhed)) {
                echo "<div style=\"font-size: 18px; font-family: Century Gothic;\"><b>".$nyheden['overskrift']."</b></div>";
                echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".$nyheden['nyhed']."</div>";
                echo "<div style=\"padding-left: 10px;\"><i>  ".$nyheden['dato']."</i></div><br>";
Avatar billede showsource Seniormester
10. april 2007 - 21:08 #2
$nyhed = mysql_query("SELECT LEFT(overskrift, 25) FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());
Avatar billede ppb Nybegynder
10. april 2007 - 21:14 #3
Så forsvandt HELE nyheden. Der vises kun overskriften.
Avatar billede dkfire Nybegynder
10. april 2007 - 21:16 #4
SELECT LEFT(nyhed, 25), overskrift, dato FROM nyhedssystem ORDER BY id DESC limit 1
Avatar billede ppb Nybegynder
10. april 2007 - 21:19 #5
Jeg skrev forkert før. Der blev der ikke vist noget.
Men med din sidste ændring, vises overskriften, men ingen nyhed.
Avatar billede ppb Nybegynder
10. april 2007 - 21:36 #6
Flere forslag???
Avatar billede dkfire Nybegynder
10. april 2007 - 21:38 #7
Jeg tror det har noget at gøre med LEFT()
Avatar billede ppb Nybegynder
10. april 2007 - 21:44 #8
Hmmm...ja, jeg ved det ikke...
Avatar billede Slettet bruger
10. april 2007 - 21:57 #9
$nyhed = mysql_query("SELECT SUBSTRING('overskrift',0,25), overskrift FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());
Avatar billede ppb Nybegynder
10. april 2007 - 22:03 #10
Har ændret ('overskrift',0,25) til ('nyhed',0,25), men der vises stadig ingen nyhed.
Avatar billede Slettet bruger
10. april 2007 - 22:16 #11
ups ja :)
Prøv evt. ('nyhed',1,25) i stedet
Avatar billede ppb Nybegynder
10. april 2007 - 22:20 #12
Samme resultat. Stadig ingen nyhed.
Avatar billede showsource Seniormester
10. april 2007 - 22:25 #13
$nyhed = mysql_query("SELECT LEFT(nyhed, 25) as tekst, overskrift, dato FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());

if(mysql_num_rows($nyhed) !=0) {

$nyheden = mysql_fetch_array($nyhed);

echo "<div style=\"font-size: 18px; font-family: Century Gothic;\"><b>".$nyheden['overskrift']."</b></div>";
echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".$nyheden['tekst']."</div>";
echo "<div style=\"padding-left: 10px;\"><i>  ".$nyheden['dato']."</i></div><br>";

}
Avatar billede ppb Nybegynder
10. april 2007 - 22:33 #14
Stadig ingen nyhed.
Avatar billede dkfire Nybegynder
10. april 2007 - 22:48 #15
printf( "%25.25s", $nyheden['nyhed'] );
måske
Avatar billede dkfire Nybegynder
10. april 2007 - 22:53 #16
eller bare printf( "%.25s", $nyheden['nyhed'] );

så skal du bare hente hele nyheden ud, så skal printf nok forkorte den til 25 tegn.
Avatar billede ppb Nybegynder
10. april 2007 - 22:59 #17
Hvor skal det ind?
Avatar billede dkfire Nybegynder
10. april 2007 - 23:17 #18
$nyhed = mysql_query("SELECT * FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());

    if(mysql_num_rows($nyhed) > 0) {

            while ($nyheden=mysql_fetch_array($nyhed)) {
                echo "<div style=\"font-size: 18px; font-family: Century Gothic;\"><b>".$nyheden['overskrift']."</b></div>";
                echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".printf("%.25s",$nyheden['nyhed'])."</div>";
                echo "<div style=\"padding-left: 10px;\"><i>  ".$nyheden['dato']."</i></div><br>";
Avatar billede ppb Nybegynder
10. april 2007 - 23:18 #19
Nu fandt jeg ud af det.
Men jeg kan ikke få font-size og det til at virke nu.
Hvordan får jeg det på igen?
Avatar billede ppb Nybegynder
10. april 2007 - 23:20 #20
Ja, ok.
Den skriver nyheden udenfor rammen, og 25 inden i rammen.
Avatar billede dkfire Nybegynder
10. april 2007 - 23:23 #21
Okay, nu er jeg slet ikke med.
Den skulle meget gerne kun udskrive 25 tegn fra nyheden.
Avatar billede ppb Nybegynder
10. april 2007 - 23:25 #22
Ja, det gør den også. Men udenfor rammen. Inden i rammen, hvor de 25 tegn burde stå, står der tallet "25".
Avatar billede dkfire Nybegynder
10. april 2007 - 23:39 #23
Okay, prøv lidt at skrive din kode.
Avatar billede dkfire Nybegynder
10. april 2007 - 23:46 #24
vi kan også bruge substr( $nyheden['nyhed'], 0, 24) istedet for printf
Avatar billede jakobdo Ekspert
11. april 2007 - 08:11 #25
Din egen kode + showsource's rettelse:

$nyhed = mysql_query("SELECT overskrift, LEFT(nyhed, 25) AS nyhed, dato FROM nyhedssystem ORDER BY id DESC limit 1") or die(mysql_error());
if(mysql_num_rows($nyhed) > 0)
{
    while ($nyheden=mysql_fetch_array($nyhed))
    {
        echo "<div style=\"font-size: 18px; font-family: Century Gothic;\"><b>".$nyheden['overskrift']."</b></div>";
        echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".$nyheden['nyhed']."</div>";
        echo "<div style=\"padding-left: 10px;\"><i>  ".$nyheden['dato']."</i></div><br>";
    }
}
Avatar billede ppb Nybegynder
11. april 2007 - 08:26 #26
Så virker det. Tak for det alle sammen.
Alle har brugt tid på dette, så smid et svar hvis I vil have point.
Avatar billede ppb Nybegynder
11. april 2007 - 08:27 #27
Tillægsspørgsmål.
Jeg vil godt slutte de 25 tegn af med "..."
Hvordan gøres det?
Avatar billede jakobdo Ekspert
11. april 2007 - 08:32 #28
Prøv at ret:
LEFT(nyhed, 25) AS nyhed
til:
CONCAT(LEFT(nyhed, 25),'...') AS nyhed
Avatar billede jakobdo Ekspert
11. april 2007 - 08:32 #29
Eller:

echo "<div style=\"font-size: 14px; font-family: Century Gothic; margin: 0px; padding: 8px; border: 1px solid black; width: 250px;\">".$nyheden['nyhed']."...</div>";
Avatar billede ppb Nybegynder
11. april 2007 - 08:35 #30
SUPER
Avatar billede jakobdo Ekspert
11. april 2007 - 08:48 #31
Man burde dog måske teste på følgende måde:

if(strlen($nyheden['nyhed']) == 25)
{
echo '...';
}

Hvis nu en lille nyhed er: Jeg er en kort nyhed. (21 tegn)
Så vil der komme ... efter, altså:
Jeg er en kort nyhed....

Omvendt er en nyhed på 25 tegn nok utænkeligt.
Avatar billede ppb Nybegynder
11. april 2007 - 09:49 #32
Jeg beholder scriptet som det er. Tror ikke jeg får så korte nyheder. Ellers må jeg bare tilbage, og lave det om. Nu har du jo skrevet hvordan man gør.
Smid et svar.

Takker igen.
Avatar billede jakobdo Ekspert
11. april 2007 - 09:56 #33
Jeg vil gerne smide et svar, men synes dog point skal deles med SHOWSOURCE, da han jo som sådan gav det rigtige svar først.
Avatar billede ppb Nybegynder
11. april 2007 - 10:00 #34
Ja, det synes jeg også. Så vi venter til han også har lagt et svar.
Avatar billede showsource Seniormester
11. april 2007 - 10:09 #35
Jeg er kun til point hvis det er om Apache :O)
Men ellers tak !
Avatar billede jakobdo Ekspert
12. april 2007 - 20:36 #36
Jeg takker for point.
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