webForumDet fria alternativet

Tips för att förbättra listning av nyhetsarkiv

PHP

7 svar · 293 visningar · startad av kicki_an

Medlem sedan jan. 200556 inlägg
Frågan#1

Hejsan!

Vi har lite problem med vårt nyhetsarkiv. Det har blivit lite för många nyheter.
Nyheterna ligger i en databas som hämtas och de listas en efter en. Jag skulle nu vilja att enbart rubriken på nyheterna listas ( lagras som en egen entitet i databasen ), och att dessa rubriker fungerar som en länk.
rubrik1
rubrik2
rubrik3

Trycker man på länken listas hela nyheten nedanför.
**rubrik1
text1

rubrik2
rubrik3**

Trycker man igen, så visas enbart rubriken igen.
rubrik1
rubrik2
rubrik3

Detta är säkert enkelt, men jag kommer inte på det just nu

Medlem sedan juli 20033 147 inlägg
#2

Såhär hade jag gjort. :)

if(isset($_GET[ID])) {

   $sql_topic = mysql_query("
   SELECT * 
   FROM nyheter 
   WHERE ID = $_GET[ID]
   ") or die(mysql_error());
   $rows_topic = mysql_fetch_array($sql_topic);

      // Skriver ut nyheten med det ID:t man har tryckt på

   $sql = mysql_query("
   SELECT * 
   FROM nyheter 
   WHERE ID != $_GET[ID]
   ORDER BY ID
   ") or die(mysql_error());

} elseif(empty($_GET[ID])) {

   $sql = mysql_query("
   SELECT * 
   FROM nyheter 
   ORDER BY ID
   ") or die(mysql_error());

}

while($rows = mysql_fetch_array($sql)) {

   // Loopa ut rubrikerna

}
Medlem sedan jan. 200556 inlägg
#3

Tack för ett snabbt svar. Men jag är osäker på hur det hela fungerar i mitt fall.

Jag bifogar här en lite smaskig kod, och är tacksam om någon hade ork att ge exempel med mig ursprungskod. :)
Jag är ingen hejare på php.

$mainpage_news=mysql_query("SELECT * from intranet_news WHERE status='1' ORDER BY id DESC") or die ("Error: " . mysql_error());
while($row = mysql_fetch_array($mainpage_news))
{
	$id=$row["id"];
	$rubrik=$row["rubrik"];
	$datum=$row["datum"];
	$innehall=$row["innehall"];
    echo "<h3>$datum $rubrik</h3>";
	echo "<br>";
	echo $innehall;
	echo "<br>";
	echo "<hr>";
}
Medlem sedan juli 20033 147 inlägg
#4

:)

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

	$sql_topic = mysql_query("
	SELECT * 
	FROM intranet_news
	WHERE id = $_GET[id]
	") or die(mysql_error());
	$rows_topic = mysql_fetch_array($sql_topic);

		echo '<h3>'.$rows_topic['datum'].' '.$rows_topic['rubrik'].'</h3><br>
		'.$rows_topic['innehall'].'<br><hr>';

	$sql = mysql_query("
	SELECT * 
	FROM intranet_news
	WHERE status = 1 AND id != $_GET[id]
	ORDER BY id DESC
	") or die(mysql_error());

} elseif(empty($_GET[id])) {

	$sql = mysql_query("
	SELECT * 
	FROM intranet_news
	WHERE status = 1
	ORDER BY id DESC
	") or die(mysql_error());

}

while($rows = mysql_fetch_array($sql)) {

	echo '<h3><a href="?id='.$rows[id].'">'.$rows['rubrik'].'</a></h3><br>';

}

/r Gjort en ändring, nu ska det nog funka bättre. :)

Medlem sedan jan. 200556 inlägg
#5

Hejsan det funkar jättebra. Jag fick ändra i den andra sql-satsen, det var 2 WHERE med.
Toppen tack.

En fråga till bara. Om man skulle vilja att den valda nyheten att läsa inte läggs överst utan i den ordningen den är listad. Hur gör man lämpligast då?

ex.
Rubrik1
Rubrik2
text2
Rubrik3

Medlem sedan juni 20006 031 inlägg
#6
$sql = mysql_query("SELECT * FROM intranet_news WHERE status = 1 ORDER BY id DESC") or die(mysql_error());
while($rows = mysql_fetch_array($sql)) {
	if ($_GET['id'] == $rows['id']) {
		echo '<h3>'.$rows_topic['datum'].' '.$rows_topic['rubrik'].'</h3><br />'.$rows_topic['innehall'].'<br /><hr>';   	
	} else {
		echo '<h3><a href="?id='.$rows['id'].'">'.$rows['rubrik'].'</a></h3><br />';
	}
}
Medlem sedan juli 20033 147 inlägg
#7

kicki_an skrev:

Hejsan det funkar jättebra. Jag fick ändra i den andra sql-satsen, det var 2 WHERE med.
Toppen tack.

Toppen! :)
Man ser oftast inte träden för all skog, bra att du löste det själv iallafall!

Medlem sedan jan. 200327 inlägg
#8

Vet inte säkert men kanske mitt exempel här kan vara till hjälp.
http://rogera.homeip.net/tester/riw-js-news.html

edit:
observera att exemplet bara visar man kan använda javascript till sina nyhetsinlägg.

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)