Avatar billede kimlarsen Praktikant
13. april 2003 - 21:53 Der er 10 kommentarer og
1 løsning

Kan man det ?

Hej !

Jeg har, via en meget flink bruger her på Eksperten, fået designet et lille nyhedssystem.

Men jeg kunne godt tænke mig at "outputtet" så lidt anderledes ud.

Alt min tekst bliver lagt ud i en tabel, som er 160 pixels bred og som er delt op i 3 celler.
En overskriftscelle, som er blå og hvor ccs´en bestemmer at hvis der er <p> foran teksten så bliver den i en bestemt størrelse !

Så er det selve indholdsteksten, som også styres tekstmæssigt med et <p> fra ccs.

og endeligt i sidste celle, ligger der en horisontal linie.

Men se eventuelt en demo af opbygningen her : http://www.Rejsebeskrivelser.dk/demo.htm

Det som det kniber med for mig, er at lave følgende om, til at passe overens med mine ovenstående ønsker !

<?
/*
Kodet af: Jesper Sørensen
Denne stump kode viser et uddrag af x antal nyheder
*/
include("admin/config.php");
$antal = "20"; // Antal nyheder der skal vises
$tegn = "60"; // Antal tegn der skal vises af nyheden
$query = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT $antal") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    $forkortet = substr($row[overskrift], 0, $tegn);
    $forkortet = substr($forkortet, 0, strrpos($forkortet, ' '))."...";
    echo "&bull; <a href=\"http://www.rejsebeskrivelser.dk/build01/nyhedssystem/visnyhed.php?id=$row[id]\">$forkortet</a><br>";
}
?>

Jeg er med på at der vistnok ikke "hentes" en del af teksten ind fra indholdet i nyheden, men da det feltnavn fra databasen hedder "tekst" er det vel bare at kopier :

$forkortet = substr($row[overskrift], 0, $tegn);
    $forkortet = substr($forkortet, 0, strrpos($forkortet, ' '))."...";
    echo "&bull; <a href=\"http://www.rejsebeskrivelser.dk/build01/nyhedssystem/visnyhed.php?id=$row[id]\">$forkortet</a><br>";

og sætte $forkortet = substr($row[tekst], 0, $tegn);
    $forkortet = substr($forkortet, 0, strrpos($forkortet, ' '))."...";
    echo "&bull; <a href=\"http://www.rejsebeskrivelser.dk/build01/nyhedssystem/visnyhed.php?id=$row[id]\">$forkortet</a><br>";

ind efter : href=\"http://www.rejsebeskrivelser.dk/build01/nyhedssystem/visnyhed.php?id=$row[id]\">$forkortet</a><br>";


Håber at jeg har forklaret godt nok !
Avatar billede schaefner Juniormester
13. april 2003 - 22:02 #1
Hvordan skal det stå når der kommer flere nyheder?
Avatar billede schaefner Juniormester
13. april 2003 - 22:09 #2
Skal hver enkelt nyhed stå i en sådan tabel?
Avatar billede kimlarsen Praktikant
14. april 2003 - 06:52 #3
Hej Jesper.

Regnede nok med, at du så meddelsen herinde, da du ikke svarede via din mail :-)

Ideen, var at det ønskede design, bare gentog sig under hinanden. Altså overskrift, brødtekst, vandret linie og så igen overskrift, brødtekst, vandret linie - lige indtil at den havde vist de X nyheder !
Avatar billede repox Seniormester
14. april 2003 - 15:13 #4
så'n her måske ?

<?php

/*
Kodet af: Jesper Sørensen
Denne stump kode viser et uddrag af x antal nyheder
*/

function newslink($headline, $tekst, $linkid) {
echo '
<table border="0" width="169" cellspacing="0" cellpadding="0" bgcolor="#486591">
<tr><td bgcolor="#FFE796">
    <table border="0" width="100%" cellspacing="0">
      <tr>
        <td width="100%" bgcolor="#486591">
          <table border="0" width="100%" cellpadding="0">
            <tr>
              <td width="100%"><p><b><font color="#FFFFFF">'.$headline.'</font></b>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td width="100%">
          <table border="0" width="100%" cellpadding="0">
            <tr>
              <td width="100%"><p><br>
'.$tekst.'<p><a href="http://www.rejsebeskrivelser.dk/build01/nyhedssystem/visnyhed.php?id='.$linkid.'" alt="Læs mere her">Læs mere her...</a>
</td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </td></tr>
<tr><td bgcolor="#FFE796">
    <hr>
  </td></tr>
</table><br>';
}


include("admin/config.php");
$antal = "20"; // Antal nyheder der skal vises
$tegn = "60"; // Antal tegn der skal vises af nyheden
$query = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT $antal") or die(mysql_error());

while ($row = mysql_fetch_array($query)) {
    $forkortet = substr($row[overskrift], 0, $tegn);
    $forkortet = substr($forkortet, 0, strrpos($forkortet, ' '))."...";
newslink($row['overskrift'], $forkortet, $row['id']);
}
?>
Avatar billede kimlarsen Praktikant
14. april 2003 - 23:50 #5
Hej Shady

Det var helt bestemt i rette retning. Du er meget tæt på fuld point.
Men har du en ide om hvorfor scriptet ikke viser teksten, men kun overskriften !

Jeg tror selv at det er fordi den ikke "fetch"er tekst ?

Men er desværre ikke stiv nok i php/mySql til at vide det med sikkerhed :-(
Avatar billede kimlarsen Praktikant
14. april 2003 - 23:51 #6
Kik evt. forbi http://www.Rejsebeskrivelser.dk og se selv.

3 kollonne fra venstre, 2 fra top "Pas på - Der arbejdes "

Kim
Avatar billede repox Seniormester
15. april 2003 - 10:28 #7
Nu ved jeg ikke lige hvad feltet i din tabel hedder hvor teksten står i, men hvis vi siger den bare hedder 'tekst', så prøv at ændre de følgende fire linier

while ($row = mysql_fetch_array($query)) {
    $forkortet = substr($row['tekst'], 0, $tegn); // <<< her er ændringen!!
    $forkortet = substr($forkortet, 0, strrpos($forkortet, ' '))."...";
newslink($row['overskrift'], $forkortet, $row['id']);
}
Avatar billede schaefner Juniormester
15. april 2003 - 10:41 #8
shady >> Hvorfor bygge det ind i en funktion når du alligevel kører en while-løkke?
Avatar billede repox Seniormester
15. april 2003 - 11:59 #9
schaefner >> ehh... fordi jeg lige synes det så mest overskueligt ud da jeg sad og biksede det sammen... :)
Avatar billede kimlarsen Praktikant
15. april 2003 - 18:20 #10
Shady >> Så fik jeg tilpasset resultatet efter mit ønske !

Lige som jeg gerne ville have det !
Drop et svar, så du kan få dine point !

Et lille tillægsspørgsmål, som ikke giver points.
Kan jeg oprette yderligere en database af samme slags, bare med et andet database navn ?
Avatar billede repox Seniormester
16. april 2003 - 12:03 #11
Ja, det kan du sagtens, men det er nemmere at oprette en anden tabel(men det er sikkert også det du mener) så skal du bare huske i din mysql forespørgsel at rette den til den nye tabel:
$query = mysql_query("SELECT * FROM andentabel ORDER BY id DESC LIMIT $antal") or die(mysql_error());
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