webForumDet fria alternativet

Arkiv!

2 svar · 318 visningar · startad av Hamatzu

HamatzuMedlem sedan mars 2005232 inlägg
#1

Hej!

Jag håller på att försöka göra ett nyhetsarkiv. Allt är precis som jag vill ha det förutom en grej. Se arkiv Som ni ser på länken så hamnar allt på en sida. Jag vill ha det så att bara den valda nyheten syns när man klickar på en utav nyheterna. Jag har försökt att fixa det själv, men det vill sig inte. Någon som vet hur man kan åtgärda detta?

P.S
Jag är nybörjare när det gäller php :)

<table cellpadding='0' cellspacing='0'>
   <tr>
      <td width='200'><b>Rubrik</b></td>
      <td width='100'><b>Skribent</b></td>
      <td width='150'><b>Datum</b></td>
      <td></td>
  </tr>

<?php
include("mysql.php");
include("funktioner.php");
//Här hämtar vi ut all information om alla nyheter 
$qnyheter = mysql_query("SELECT * FROM nyheter ORDER BY id DESC");
while($snyheter = mysql_fetch_array($qnyheter)) {

    echo "<tr>";
    echo "<td><a href='arkiv.php?show=".$snyheter['id']."'>".$snyheter['rubrik']."</a></td>";
    echo "<td>".$snyheter['skribent']."</td>";
    echo "<td>".$snyheter['datum']."</td>";
    echo "</tr>";
}
echo "</table>";
//Kod för att visa en nyhet med vald ID
if(isset($_GET['show'])) {

  //Denna kod hämtar ut informationen som vi ska visa
  $qnyheter = mysql_query("SELECT * FROM nyheter WHERE id=".$_GET['show']) or exit(mysql_error());
  $snyheter = mysql_fetch_array($qnyheter);

  echo $snyheter['rubrik']. "<br />";
  echo "Skriven av: " .$snyheter['skribent']. "<br />";
  echo $snyheter['innehall'];
  
  $qcount = mysql_query("SELECT * FROM kommentarer where nid='".$snyheter['id']."'");
  $scount = mysql_num_rows($qcount);

  echo "<br /><br />- Kommentarer(<b>$scount</b>)<br /><br />";

  //Jag sätter $i till 1 så att varje kommentar får ett nummer framför sig som ökar vid varje ny nyhet
  $i = 1;

  while($skom = mysql_fetch_array($qcount)) {
  //Explode delar upp en sträng på det värdet man sätter mellan de första " ", kolla under resurser och explode()-funktionen för mer information
  $date = explode(" ", $skom['datum']);

  //Printf gör utskrivningen lättare samt gör det snyggare, kolla under resurser och prinft()-funktionen för mer information
  printf("#%d - Skriven av: %s <br /> %s (%s) - <a href='nyheter.php?id=%s&deletecomment=%s'>Ta bort</a><br />%s<br /><br />",
  $i, $skom['skribent'], $date[0], $date[1], $_GET['id'], $skom['id'], bbkod($skom['innehall']));

  //$i++ ökar $i med 1 för varje ny kommentar som skrivs ut, $i++ är samma sak som $i+1
  $i++;
  }
}

exit();
?>
PeddaMedlem sedan juni 20006 032 inlägg
#2

Kolla bara om show finns innan du skriver ut från databasen.

if (!isset($_GET['show'])) {
//Här hämtar vi ut all information om alla nyheter 

$qnyheter = mysql_query("SELECT * FROM nyheter ORDER BY id DESC");

while($snyheter = mysql_fetch_array($qnyheter)) {

    echo "<tr>";

    echo "<td><a href='arkiv.php?show=".$snyheter['id']."'>".$snyheter['rubrik']."</a></td>";

    echo "<td>".$snyheter['skribent']."</td>";

    echo "<td>".$snyheter['datum']."</td>";

    echo "</tr>";

}
}
HamatzuMedlem sedan mars 2005232 inlägg
#3

Tack så mkt Pedda :moose

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)