UrMeMedlem sedan apr. 2001762 inlägg Jag håller på med ett jätte simpelt forum, eller snarare jag håller på att bygga om ett gammalt som jag gjorde för 2 år sedan..
Jag sparar alla rubriker i en mysql databas tabell, och jag sparar även svaren i samma tabell. Om det är ett svar på en tråd så sparar jag ID:et i en kolumn som kallas "svar".
Just nu loopar jag ut alla topics som har svar="0" så här:
$visatopics = mysql_query("SELECT * FROM forum WHERE svar = '0' ORDER BY datum DESC, idnr DESC limit $offset, $limit");
Hur ska jag skriva sql frågan för att sortera topicarna efter när senaste svaret kom in i en tråd?
Så här ser tabell formatet ut:
CREATE TABLE `forum` (
`idnr` int(10) NOT NULL auto_increment,
`svar` int(10) NOT NULL default '0',
`topic` text NOT NULL,
`meddelande` text NOT NULL,
`datum` date NOT NULL default '0000-00-00',
`tid` time NOT NULL default '00:00:00',
`namn` varchar(200) NOT NULL default '',
`epost` varchar(200) NOT NULL default '',
UNIQUE KEY `idnr` (`idnr`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
Hmm hoppas nån förstod mitt problem :)
andy-80Medlem sedan jan. 200537 inlägg Kanske kan vara idé att separera tabellen i två. En som har frågan(meddelandet) och en som lagrar svaren, sen en kopplingstabell med nycklarna från båda plus en tidsstämpel.
Då blir det ju en rätt lätt sql fråga!
Och du kan också sortera efter inkommna svarsdatum.
Vet ej om jag förstod rätt dock... =)
UrMeMedlem sedan apr. 2001762 inlägg
andy-80 skrev:
Kanske kan vara idé att separera tabellen i två. En som har frågan(meddelandet) och en som lagrar svaren, sen en kopplingstabell med nycklarna från båda plus en tidsstämpel.
Då blir det ju en rätt lätt sql fråga!
Och du kan också sortera efter inkommna svarsdatum.
Vet ej om jag förstod rätt dock... =)
Jo jag tänkte först lägga det i två tabeller, men eftersom forumet är väldigt litet :) det fungerar mer som en gästbok fast i trådar så tyckte jag en tabell borde räcka och var smidigast.
Det borde väl gå att fixa en eller kanske två SQL frågor som sorterar det rätt även fast det ligger i samma tabell? Jag är inte så jäkla säker på SQL så att jag fixar en sådan sql fråga tror jag... :)
UrMeMedlem sedan apr. 2001762 inlägg ok jag har gjort 2 tabeller nu.. en som heter forum_inlagg och en som heter forum_svar
forum_svar har en kolumn som heter "svar" där id-numret till forum_inlagg sparas.
Så om jag svarar på forum_inlagg idnr = 7 så sparas en 7:a i forum_svars kolumn "svar".
Men jag har försökt att pilla till så att den sorterar efter senaste inlägget .. men inte lyckats :(
Edit: aha läste Andys svar igen.. tappade bort det där med kopplingstabell.. men ska den verkligen vara nödvändig?
andy-80Medlem sedan jan. 200537 inlägg Nödvändigt och nödvändigt... det GÅR säkert att göra på annat sätt :e . E inte heller den bäste på SQL direkt. Men jag hade lagt en kopplingstabell emellan. Då blir det ju väldigt enkelt att sortera efter tidsstämpeln.
Går säkert att göra annorlunda med på detta sätt får du ju ett definitivt värde att sortera efter, utan att krångla till sql-frågan.
:)
UrMeMedlem sedan apr. 2001762 inlägg Fick till det :)
$visatopics = mysql_query("SELECT f1.idnr, f1.topic, f2.datum as f2datum, f1.datum, f1.namn, f2.tid, f1.tid, coalesce(f2.datum,max(f1.datum)) as orderDate, coalesce(f2.tid,max(f1.tid)) as orderTime FROM forum_inlagg f1 LEFT JOIN forum_svar f2 on f2.svar = f1.idnr GROUP BY f1.idnr, f1.topic, f1.namn, f1.datum ORDER BY orderDate DESC, orderTime DESC limit $offset, $limit") or die(mysql_error());
Hittade denna tråd som jag totalt missade :r
http://www.webforum.nu/showthread.php?s=&threadid=118560&forumid=53