Gå til innhold

Hjelp til "Les mer" funksjon


Anbefalte innlegg

Hei!

Holder på med et pubsystem, og har kommet så lang i prosessen at jeg skal vise frem nyhetene på en fin måte.

 

Pubsystemet baserer seg på PHP og MySQL.

Jeg har 3 hovedkollonner (Tittel, Ingress og hoveddel) i tabellen min og vil at nyhetene skal vises med følgende struktur:

 

Tittel

 

INGRESS

 

Les mer... << Som fører til at følgende blir vist:

 

 

______________________________________________________

 

Tittel

 

INGRESS

 

HOVEDDEL

 

Koden som viser nyhetene ser følgende ut:

 

<?php
include("config.php");
$sql="SELECT * FROM artk ORDER BY id DESC";

$res=mysql_query($sql,$oppKoble);

while ($innhold=mysql_fetch_array($res)) {
$tittel=$innhold['tittel'];
$ingress=$innhold['ingress'];
$hoveddel=$innhold['main_c'];

echo "<h2> $tittel </h2>";
echo "<b>$ingress</b>" . "<br /><br />";
echo "$hoveddel";
}
?>

 

Det jeg vil er altså at hoveddelen kun skal vises ved trykk av linken

"Les mer..."

 

Si gjerne i fra om jeg er for upresis.

 

Takker får all hjelp! :)

Lenke til kommentar
Videoannonse
Annonse

Før jeg begynner vil jeg bare si at jeg er ingen mester i dette og dette er sikkert mer en feil. Men det har funket for meg så langt.

 

Så her er sånn ca hvordan jeg har gjort det på min egen side (som ikke er på nettet).

 

Dette vil komme i toppen av koden din.

PHP

//åpner databasen

include 'library/config.php';

include 'library/opendb.php';

 

//hvis id ikke er satt vis en liste over alle de forskjellige artiklene.

 

if(!isset($_GET['id']))

{

 $self  = $_SERVER['PHP_SELF'];

 

 $sql = "SELECT * FROM artk ORDER BY id DESC";

 $result = mysql_query($sql) or die('Error : ' . mysql_error()); 

 

 $content = '<ol>';

 while($row = mysql_fetch_array($result))

 {

$artTittel=$row['tittel'];

$ingress=$row['ingress'];

$content .= "<li><a href=\"$self?id=$id\">$artTittel</a>\r\n";

$content .= "$ingress "

$content .= "<a href=\"$self?id=$id\">Les mer...</a></li>"

 }

 

 $content .= '</ol>';

 

 $tittel = 'Artikler';

} else {

 // Hvis id er satt, vis riktig artikkel.

 $sql = "SELECT * FROM artk WHERE id=".$_GET['id'];

 $result = mysql_query($sql) or die('Error : ' . mysql_error()); 

 $row = mysql_fetch_array($result); 

 

 $tittel = $row['tittel'];

 $ingress = $row['ingress'];

 $hoveddel = $row['main_c'];

 

 $content = '$ingress';

 $content = '$hoveddel';

 

//lukker databasen

include 'library/closedb.php';

 

Her kommer selve html koden

PHP

<html>

<head>

<title>

<?php echo $tittel?>

</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">

 

/* her kan du sette inn css hvis du vil */

 

</style>

</head>

<body>

<table width="600" border="0" align="center" 

cellpadding="10" cellspacing="1" bgstyle="color:#336699">

<tr> 

<td bgstyle="color:#FFFFFF">

<h1 align="center"><?php echo $tittel?></h1>

<?php 

echo $content;

 

// Når du viser en spesiel artikkel

// vis en link tilbake til alle de andre artiklene

if(isset($_GET['id']))

?>

<p> </p>

<p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Article List</a></p>

<?php

}

?> 

</td>

</tr>

</table>

</body>

</html>

 

Jeg regner med at det må gjøres noe mer forandringer på dette skriptet for at det skal funke for deg. Men burde gi en pekke pine på hvordan det kan gjøres. Det er sikkert også en del type-os. Skrev dette i litt hu og hast :p

 

Lykke til :D

Lenke til kommentar
Gjest Slettet-rXRozPkg

Det er vel litt enklere å ta utgangpunkt i det scriptet han allerede har...

Her er noe jeg slang sammen på 5 min. Har ikke testet dette, så er det noe som ikke virker så får du legge til en post ;o)

 

<?php

include("config.php");

 

if(isset($_GET['id']) && $_GET['id']>0 && is_numeric($_GET['id'])) {

  // Viser kun en arikkel

  $sql="SELECT * FROM artk WHERE id = $_GET['id'] ORDER BY id DESC";

  $res=mysql_query($sql,$oppKoble);

  $antall = mysql_num_rows($res);

  if($antall <=0) {

    echo "Feil id";

  } else {

    $innhold=mysql_fetch_array($res);

    $tittel=$innhold['tittel'];

    $ingress=$innhold['ingress'];

    $hoveddel=$innhold['main_c'];

    echo "<h2> $tittel </h2>";

    echo "<b>$ingress</b>" . "<br /><br />";

    echo $hoveddel."<br />";

    echo "<a href=\"filnavn.php\">Tilbake til nyhetsoversikten</a><br /><br />";

  }

 

} else {

  // Viser listen over alle artiklene

  $sql="SELECT * FROM artk ORDER BY id DESC";

 

  $res=mysql_query($sql,$oppKoble);

 

  while ($innhold=mysql_fetch_array($res)) {

    $tittel=$innhold['tittel'];

    $ingress=$innhold['ingress'];

    $hoveddel=$innhold['main_c'];

    $id = $innhold['id'];

 

    echo "<h2> $tittel </h2>";

    echo "<b>$ingress</b>" . "<br /><br />";

    echo "<a href=\"filnavn.php?id=".$id."\">Les mer...</a><br /><br />";

  }

}

?>

Endret av Slettet-rXRozPkg
Lenke til kommentar

Får feilmeldingen

 

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Programfiler\xampp\htdocs\script\erixzPub\vis2.php on line 6

 

når jeg bruker ditt script lumted, ser ikke feilen selv.

 

Feilen ligger her tydligvis:

$sql="SELECT * FROM artk WHERE id = $_GET['id'] ORDER BY id DESC ";

 

Noe er galt med spørringen, ser du hva som er galt? :hmm:

Lenke til kommentar

Er ikke "SELECT * FROM tabell" litt "fyfy"?

Om man skal hente ut tittel og ingress og tabellen inneholder 20 kolonner så belaster man vel SQL-serveren unødvendig og legger beslag på mer minne på webserveren?

 

Det er vel kanskje minimalt merkbart, men uansett :p

 

"SELECT tittel, ingress FROM tabell"

Lenke til kommentar

Holder på å teste en debugmetode fra en databasedriver jeg holder på med så jeg lagde en liten test.

 

Du sparer litt tid men ikke så mye at du merker det tror jeg :p

 

Klikk for å se/fjerne innholdet nedenfor
ja.jpg
Endret av shaker
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...