Top
Phpuniverset logo
 
930 banner

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum PHP, mysql Nyhedssystem m. kommentarer - antal

Nyhedssystem m. kommentarer - antal


 

Nyhedssystem m. kommentarer - antal

Haris  

Hej.

Jeg er i gang med at lave et "kommentar system" til mine nyheder.
Her er tabellerne til databasen:

#Nyheder
CREATE TABLE `nyheder` (
`id` int(11) NOT NULL auto_increment,
`overskrift` varchar(255) NOT NULL,
`nyhed` longtext NOT NULL,
`kommentarer` int(1) NOT NULL default '0',
`forfatter` varchar(255) NOT NULL,
`dato` date NOT NULL,
`ip` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

#Kommentarer
CREATE TABLE `nyheds_kommentarer` (
`id` int(11) NOT NULL auto_increment,
`nyheds_id` int(11) NOT NULL default '0',
`navn` varchar(255) NOT NULL,
`kommentar` varchar(255) NOT NULL,
`dato` date NOT NULL,
`ip` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

Når jeg har valgt en nyhed - med id, kan jeg sagtens få det vist
frem og alt det der. Fx: index.php?site=nyheder&id=9.
- Det, jeg gerne vil lave, er, at inde på nyheds siden - hvor
alle nyhederne
er, vil jeg gerne have, at man kan se, hvor mange kommentarer der
er til hver nyhed.

Fx:
Nyhed 1.
Headline
tekst tekst tekst tekst tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst tekst

(9) kommentarer.
Nyhed 2.
Headline
tekst tekst tekst tekst tekst tekst tekst tekst
tekst tekst tekst tekst tekst tekst tekst tekst

(4) kommentarer.

Hvordan kan jeg få kaldt de kommentarer frem, der er til den
pågælende nyhed, uden at være under det pågældende id - hvis i
forstår. Altså når man er inde på index.php?site=nyheder.

Forstår i hvad jeg mener? Hvis det ikke er forståeligt nok, siger i bare til. Så går
jeg gerne mere i dybden med det.

//Haris 



Dato : 06.12.2009, 19:29

Visninger : 1661

Points : 50

 

Hej Haris,

Hmm jeg kan ikke rigtig forstå hvorfor du skriver at du vil have dine kommentarer vist
uden at være inde under det pågældende id altså nyhedens id.
Du bliver nødt til at have en eller anden form for genkendelse.
Det undrer mig også at du allerede i din kommentar tabel har oprettet en nyheds_id.

Det kan godt være at jeg måske har opfattet det forkert, men anyway så har du faktisk
lavet forberedelserne.
Det eneste du mangler at lave er et while loop.
Jeg går ud fra at dit system har gemt nyhedens id i en variabel som jeg vil kalde $id for
dette eksempel.
Først tilføjer vi værdier til nogle variabler:

---- PHP ----
$task = "SELECT * FROM nyheds_kommentarer WHERE nyheds_id = '$id'";
$result = mysql_query($task);
$count = mysql_num_rows($result);
---- PHP ----

Okay så altså $result finder alle kommentarer der hører til nyheden og $count tæller
hvor mange der er.
Går ud fra du vil lave "(9) kommentarer." som et link og derfor ved jeg ikke hvordan du
vil vise dem altså på en ny side eller få dem frem via JavaScript, men det må du selv
rode med.
Lige meget hvordan du vælger at vise dem så bliver det gjort via et while loop.

---- PHP ----
while($row = mysql_fetch_array($result))
{
echo "<b>Dato:</b> " . $row['dato'] . "<br />\n";
echo "<b>Navn:</b> " . $row['navn'] . "<br />\n";
echo "<b>IP:</b> " . $row['ip'] . "<br />\n";
echo "<b>Kommentar:</b><br />" . $row['kommentar'] . "<hr />\n";
}
---- PHP ----

Hvordan det helt præcist skal se ud på skærmen er jo op til dig.
Håber at du kan bruge mit svar til noget og ellers så beklager jeg hvis jeg har
misforstået dit spørgsmål. :)

Mvh,
DeeDawg


Dato : 08.12.2009, 03:23

Godkendt svar af : Nicklas Smed  

 

Hej DeeDawg.

Jeg har fået det til at virke nu. Jeg tror du har misforstået mit spørgsmål, men jeg
forklarer da gerne.

Forestil dig, at vi har en nyhedsside:
#Nyheder.php
- Her vises alle nyhederne. Siden kan hedde index.php?site=nyheder. I slutningen af hver
nyhed vil jeg gerne have antallet af kommentarer til nyheden (med link der fører til den
direkte nyhed - i mit tilfælde: index.php?site=nyhedsarkiv&id=(fx)7.

Grunden til at jeg har nyheds_id i min kommentar tabel er, at id'et for nyheden skal svare
til nyheds_id'et i kommentar tabellen - ellers ville alle kommentarer blive vist for alle
nyheder.

Min select ser således ud nu:
"SELECT nyheder.id, nyheder.overskrift, nyheder.nyhed, nyheder.dato,
count(nyheds_kommentarer.id) AS antal FROM nyheder LEFT JOIN nyheds_kommentarer ON
nyheder.id=nyheds_kommentarer.nyheds_id GROUP BY nyheder.id, nyheder.overskrift,
nyheder.nyhed, nyheder.dato"

Når jeg så skal kalde antallet frem bruger jeg:

Kommentarer: <?php echo $n_arr'antal'].

Forstår du mit spørgsmål nu
Men anywayzTak for svaret alligevel. :)

// Haris


Dato : 08.12.2009, 16:11

Kommentar af : Haris  

 

Hov. Glemte at lukke det med ?> (:

Dato : 08.12.2009, 16:12

Kommentar af : Haris  




Login for at skrive et indlg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund