Erik B. Skrevet 9. november 2006 Del Skrevet 9. november 2006 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
Spiftire Skrevet 10. november 2006 Del Skrevet 10. november 2006 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 Lykke til Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 10. november 2006 Del Skrevet 10. november 2006 (endret) 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) <?phpinclude("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 10. november 2006 av Slettet-rXRozPkg Lenke til kommentar
Erik B. Skrevet 10. november 2006 Forfatter Del Skrevet 10. november 2006 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? Lenke til kommentar
Erik B. Skrevet 10. november 2006 Forfatter Del Skrevet 10. november 2006 (endret) Fikk det til å virke nå, måtte gjøre det slik: $getid=$_GET['id']; $sql="SELECT * FROM artk WHERE id = $getid ORDER BY id DESC "; Funker knall! tusen takk Endret 10. november 2006 av erixz Lenke til kommentar
olabilen Skrevet 11. november 2006 Del Skrevet 11. november 2006 Nå er du åpen for mulige SQL injeksjoner. Bruk $getid = intval($_GET['id']); Da er du i allefall "litt sikkret". Lenke til kommentar
ZoRaC Skrevet 13. november 2006 Del Skrevet 13. november 2006 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 "SELECT tittel, ingress FROM tabell" Lenke til kommentar
shaker Skrevet 13. november 2006 Del Skrevet 13. november 2006 (endret) 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 Klikk for å se/fjerne innholdet nedenfor Endret 13. november 2006 av shaker Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå