Group by functie --> moet Instinct worden
HEt gaat erom dat ik dit niet goed werkend krijgt. op 1 of andere manier werkt distinct niet.
$qry = mysql_query("
SELECT
distinct(topic_titel),
topic_datum as datum,
topic_reactienr as reactie,
topic_topicnr,
mw_gegevens_persnr,
mw_gegevens_vnaam,
mw_gegevens_voegsel,
mw_gegevens_anaam
FROM
forum_topic
LEFT OUTER JOIN
mw_gegevens
ON
forum_topic.topic_persnr = mw_gegevens.mw_gegevens_persnr
WHERE
topic_status=20
ORDER BY
datum DESC
LIMIT
0,10
Gewijzigd op 29/09/2010 15:26:38 door J C
Dump ook even "mw_gegevens"
Ik krijg dan zoiets als:
$qry = mysql_query("
SELECT
distinct(topic_titel),
topic_datum as datum,
topic_reactienr as reactie,
topic_topicnr,
mw_gegevens_persnr,
mw_gegevens_vnaam,
mw_gegevens_voegsel,
mw_gegevens_anaam
FROM
forum_topic
LEFT OUTER JOIN
mw_gegevens
ON
forum_topic.topic_persnr = mw_gegevens.mw_gegevens_persnr
WHERE
topic_status=20
ORDER BY
datum DESC
LIMIT
0,10
ik moet alleen nog even kijken hoe ik 2 keer distinct in 1 querie kan gebruiken.
Wat is er trouwens met dit forum aan de hand, ik kan niet nor,maal een post veranderen zonder dat het invulveld steeds naar boven scrolt.
Gewijzigd op 29/09/2010 01:58:10 door J C
Gewijzigd op 29/09/2010 02:00:13 door Modern Warfare
Ik wil zowel het topicnr als de topic_titel in een distinct zetten, anders blijft hij ze meerdere malen weergeven.
Ik krijg dit als resultaat:
Medewerkerssite 11005 29-09-'10 01:50
Medewerkerssite 11005 28-09-'10 03:58
Zaterdag hulp 19005 27-09-'10 02:10
Medewerkerssite 19005 26-09-'10 22:14
Gewijzigd op 29/09/2010 02:04:40 door J C
SELECT DISTINCT (topic_titel, topicnr)
Nu dus group by en bijv. de id
kan niet goed weergeven Operand should contain 1 column(s)
Toevoeging op 29/09/2010 02:07:51:
Ik krijg dan dit:
$qry = mysql_query("
SELECT
distinct(topic_titel),
topic_datum as datum,
topic_reactienr as reactie,
topic_topicnr,
mw_gegevens_persnr,
mw_gegevens_vnaam,
mw_gegevens_voegsel,
mw_gegevens_anaam
FROM
forum_topic
LEFT OUTER JOIN
mw_gegevens
ON
forum_topic.topic_persnr = mw_gegevens.mw_gegevens_persnr
WHERE
topic_status=20
GROUP BY
topic_topicnr
ORDER BY
datum DESC
LIMIT
0,10
resultaat:
Zaterdag hulp 19005 27-09-'10 02:10
Medewerkerssite 19005 26-09-'10 22:14
ik zie dan niet meer de nieuweste reacties
omdat elke topicnr die uniek is de tog topic_titels ook te zien krijgt beetje vaag wat je wilt bereiken
Geef eens een voorbeeld van wat er uit moet komen volgens jouw!
met dit als resultaat
Medewerkerssite 11005 29-09-'10 01:50
Medewerkerssite 11005 28-09-'10 03:58
Zaterdag hulp 19005 27-09-'10 02:10
Medewerkerssite 19005 26-09-'10 22:14
maar ik wil dit bereiken:
Medewerkerssite 11005 29-09-'10 01:50
zaterdag hulp 19005 27-09-'10 02:10
script:
<tr>
<td style="width: 250px"><a href="?pagina=topic&topicnr='.$list['topic_topicnr'].'&reactienr='.$list['reactie'].'"> '.$list['topic_titel'].'</a></td>
<td style="width: 150px"> <a href="?pagina=mw-bekijken&mw_id='.$list['mw_gegevens_persnr'].'">'.$list['mw_gegevens_vnaam'].' '.$list['mw_gegevens_voegsel'].' '.$list['mw_gegevens_anaam'].'</a></td>
<td style="width: 100px">'.date("d-m-'y H:i",$list['datum']).'</td>
</tr>
Gewijzigd op 29/09/2010 02:18:53 door J C
Doe even die dump van de database !
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `jcsl_admin`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `forum_topic`
--
CREATE TABLE IF NOT EXISTS `forum_topic` (
`topic_id` int(11) NOT NULL auto_increment,
`topic_persnr` int(11) NOT NULL default '0',
`topic_titel` text NOT NULL,
`topic_onderdeel` int(11) NOT NULL,
`topic_bericht` text NOT NULL,
`topic_topicnr` int(11) NOT NULL,
`topic_reactienr` int(11) NOT NULL,
`topic_datum` int(11) NOT NULL default '0',
`topic_aanpaspersnr` int(11) NOT NULL,
`topic_aanpasdatum` int(11) NOT NULL default '0',
`topic_status` int(2) NOT NULL default '1',
PRIMARY KEY (`topic_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
--
-- Gegevens worden uitgevoerd voor tabel `forum_topic`
--
INSERT INTO `forum_topic` (`topic_id`, `topic_persnr`, `topic_titel`, `topic_onderdeel`, `topic_bericht`, `topic_topicnr`, `topic_reactienr`, `topic_datum`, `topic_aanpaspersnr`, `topic_aanpasdatum`, `topic_status`) VALUES
(1, 195, 'Medewerkerssite', 520, 'Hier bespreken de nieuwe en bestaande onderdelen van onze medewerkerssite.\r\n', 1, 1, 1285532040, 195, 1285676299, 20),
(5, 195, 'Zaterdag hulp', 600, 'Voor de zaterdag ben ik opzoek naar een jonge medewerker van tussen de 15 en 17 jaar.\r\n\r\nHet zal voornamelijk gaan om magazijn en onderhoud werk.\r\n\r\nErvaring is niet noodzakelijk, wij kunnen hem/haar alles leren.\r\n\r\nWanneer er geneog ervaring is opgedaan kan hij/zij ook mee met opdrachten.', 5, 1, 1285546238, 0, 0, 20),
(14, 1108, 'Medewerkerssite', 520, 'testbericht', 1, 2, 1285639124, 195, 1285676286, 20),
(15, 1108, 'Medewerkerssite', 520, 'nog een testbericht', 1, 3, 1285717826, 0, 0, 20);
Gewijzigd op 29/09/2010 02:23:20 door J C
en elke topic_nr een unieke topic_titel heeft
probeer dan de distinct toetewijzen aan topic_nr, dan heb je altijd een unieke topic_titel
Gewijzigd op 29/09/2010 02:30:02 door Karizma Yusuf
topic_id = uniek id
topic_titel = niet uniek is bij elke reactie hetzelfde. Maar topicnr 1 is altijd medewerkerssite. Misschien moet ik de titels in een aparte tabel zetten.
topic_bericht = niet uniek
topic_onderdeel = niet uniek verwijst naar de categorie waar het topic thuis hoort
topic_topcnr = is het nummer van de topic, bij een eventuele reactie blijft dit nummer hetzelfde als de begintopic
topic_reactienummer = niet uniek, maar wel uniek incombinatie met het topicnr
Gewijzigd op 29/09/2010 02:36:52 door J C
distinct(topic_titel),
topic_datum as datum,
topic_reactienr as reactie,
topic_topicnr
FROM
forum_topic
where topic_datum = (select max(topic_datum))
group by topic_titel
order by datum DESC
Ik denk dat het het makkelijkst is om de titels in een parta tabel te zetten, maakt het ook makkelijker om een titel aan te passen.
Mijn verandering werkt ook niet helemaal.
Ik heb nu dit:
$qry = mysql_query("
SELECT
distinct(topictitels_naam),
topic_datum as datum,
topic_reactienr as reactie,
topic_topicnr,
mw_gegevens_persnr,
mw_gegevens_vnaam,
mw_gegevens_voegsel,
mw_gegevens_anaam
FROM
forum_topictitels,
forum_topic
LEFT OUTER JOIN
mw_gegevens
ON
forum_topic.topic_persnr = mw_gegevens.mw_gegevens_persnr
WHERE
topic_status=20
AND
topic_topicnr=topictitels_id
ORDER BY
datum DESC
LIMIT
0,10
Gewijzigd op 29/09/2010 02:53:14 door J C
ik zou aanraden voor Topic titel, reacties en berichten een eigen tabel te maken.
voor normaliseren van database
kijk is naar deze pagina, na de 3e NV kan je al een goed gestructureerd database in elkaar zetten
Gewijzigd op 29/09/2010 03:01:49 door Karizma Yusuf
Voor de topictitel heb ik al een aparte aangemaakt.
Gewijzigd op 29/09/2010 07:04:09 door Karizma Yusuf
Er ben er inmiddels achter dat het hele distinct niet werkt.
Moet ik dit eerst activeren, zo ja weet iemand hoe?
Gewijzigd op 29/09/2010 15:14:50 door J C