Group by functie --> moet Instinct worden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

J C

J C

29/09/2010 01:11:56
Quote Anchor link
Eerdere bericht verwijderd.

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
 
PHP hulp

PHP hulp

22/12/2024 21:21:39
 
Modern Warfare

Modern Warfare

29/09/2010 01:55:02
Quote Anchor link
Dump ook even "mw_gegevens"
 
J C

J C

29/09/2010 01:56:48
Quote Anchor link
Ik heb het helemaal verwijderd, ik moet namelijk niet werken met grouop by maar met instinct.

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
 
Modern Warfare

Modern Warfare

29/09/2010 01:58:52
Quote Anchor link
Precies ! en 2x distinct is niet nodig.
Gewijzigd op 29/09/2010 02:00:13 door Modern Warfare
 
J C

J C

29/09/2010 02:01:22
Quote Anchor link
weet jij hoe dat moet met 2 x een disctinct in een qry?

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
 
Karizma Yusuf

Karizma Yusuf

29/09/2010 02:04:39
Quote Anchor link
SELECT DISTINCT (topic_titel, topicnr)
 
Modern Warfare

Modern Warfare

29/09/2010 02:04:55
Quote Anchor link
Nu dus group by en bijv. de id
 
J C

J C

29/09/2010 02:05:25
Quote Anchor link
Dat mag niet:

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
 
Karizma Yusuf

Karizma Yusuf

29/09/2010 02:09:58
Quote Anchor link
waarom wil je topic nr ook.. dat gaat dan niet goed samenwerken met distinct
omdat elke topicnr die uniek is de tog topic_titels ook te zien krijgt beetje vaag wat je wilt bereiken
 
Modern Warfare

Modern Warfare

29/09/2010 02:17:48
Quote Anchor link
Geef eens een voorbeeld van wat er uit moet komen volgens jouw!
 
J C

J C

29/09/2010 02:17:54
Quote Anchor link
wat ik wil bereiken is dat elke topic maar 1 keer te bereiken is. maar als het ik maar 1 resultaat groepeer/dinstinct dan blijft hij de andere weergeven.

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&amp;topicnr='.$list['topic_topicnr'].'&amp;reactienr='.$list['reactie'].'"> '.$list['topic_titel'].'</a></td>
<td style="width: 150px"> <a href="?pagina=mw-bekijken&amp;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
 
Modern Warfare

Modern Warfare

29/09/2010 02:21:05
Quote Anchor link
Doe even die dump van de database !
 
J C

J C

29/09/2010 02:22:08
Quote Anchor link
de getallen 19005 hierboven zijn fictief, dit zijn iegenlijk de namen van de gebruikers.


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
 
Karizma Yusuf

Karizma Yusuf

29/09/2010 02:28:49
Quote Anchor link
als topic_nr naar topic_titel verwijst, zoals 520 is medewerkerssite
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
 
J C

J C

29/09/2010 02:35:44
Quote Anchor link
nee zo werekt het niet helemaal

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
 
Modern Warfare

Modern Warfare

29/09/2010 02:38:37
Quote Anchor link
SELECT
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
 
J C

J C

29/09/2010 02:46:29
Quote Anchor link
helaas dit verandert niets aan het resultaat.

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
 
Karizma Yusuf

Karizma Yusuf

29/09/2010 03:00:51
Quote Anchor link
met de database wat jij hebt gerealiseerd kan je ook moeilijk werken. je hebt een topic tabel gemaakt met titel, reacties en berichten in één tabel.

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
 
J C

J C

29/09/2010 03:11:52
Quote Anchor link
Ik heb er juist voor gekozen om geen onderscheid te maken tussen een topic en een reactie. In principe is er ook geen verschil. een topic krijgt als reactienr 1 mee en een reactie 2 en opvolgend.

Voor de topictitel heb ik al een aparte aangemaakt.
 
Karizma Yusuf

Karizma Yusuf

29/09/2010 03:40:25
Quote Anchor link
nvm
Gewijzigd op 29/09/2010 07:04:09 door Karizma Yusuf
 
J C

J C

29/09/2010 15:01:31
Quote Anchor link
wat bedoel je daarmee?

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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.