Jeg skal nu lave en "beskeder jeg har deltaget i" men kan VIRKELIG ikke finde ud af hvordan jeg skal lave SQL-en!
Det jeg kom frem til var:
SELECT * FROM `pho_message` m1 WHERE m1.`id_group` =2 AND ( ( m1.`id_parent` != '0' AND m1.`id` IN (
SELECT MAX( m2.`id` ) FROM `pho_message` m2 WHERE m2.`id_user` =36 GROUP BY m2.`id_parent` ) ) OR ( m1.`id_parent` =0 AND m1.`id_user` =36 AND NOT EXISTS (
SELECT m3.`id` FROM `pho_message` m3 WHERE m3.`id_parent` = m1.`id` ) ) ) ORDER BY m1.`date_show` DESC LIMIT 0 , 30
---
Men det skriver ikke poster hvor det sidste svar er skrevet af en anden...
Du skal vel gøre brug af mere end blot én MySQL tabel. Du bruger pt. kun 'pho_message'. For at finde ud af hvorvidt man har deltaget i en debat, skal du vel også inddrage den tabel, hvori alle svarene gemmmes?
Jeg ville personligt have brugt alm. JOIN til din løsning - men jeg kan se at du bruger en masse selects, så kan jeg vist ikke svare på.
Synes godt om
Slettet bruger
26. august 2008 - 16:09#7
cronick: Hvis id_parent er 0 opfattes den som trådstarter, ellers som et svar.
Kan du ikke give os et overblik over din(e) tabel(ler)? For jeg forstår stadigvæk ikke, hvordan du vha. kun én tabel, kan afgøre, om personen deltager i dit forum/beskedsystem, samt udskrive selve debatten/beskeden.
Sikke en speciel måde at lave et fora på - det har jeg ikke set for :-)
Hvis du er villig til at prøve INNER JOIN, frem for så mange selections, så kan du med fordel prøve det følgende:
$brugernavn_id = "1"; // eks på id af en bruger
mysql_query("SELECT `pm1`.* FROM `pho_message` AS `pm1` INNER JOIN `pho_message` AS `pm2` ON `pm1`.`id` = `pm2`.`id_parent` AND `pm2`.`id_user` = '".$brugernavn_id."' WHERE `pm1`.`id_parent` = '0' GROUP BY `pm1`.`id` ORDER BY `pm2`.`date_show` DESC")or die(mysql_error());
Synes godt om
Slettet bruger
27. august 2008 - 07:44#17
Ser lige på det lidt senere, tak for input!
Ang. opbygningen synes jeg også det er latterligt, men sådan er det når man får kode outsourcet :)
Jeg have oprettet to tabeller til formålet. En til selve tråden, og en de tilhørende svar. Jeg ser på et fora på samme måde som et artikel-register. Det ville virke en smule besynderligt, at have både artiklerne samt artikel-kommentarene i samme tabel - ligesom det er situationen her. Det er selvfølgelig smag og behag, men for mig virker det bare mere overskueligt, samt struktureret.
Jeg skriver kun et svar, hvis du rent faktisk kunne bruge mine svar til noget. Hvis ikke, så synes jeg bare du skal tage dem selv - såfremt jakobdo selvfølgelig ikke har nogen indvendinger.. :-)
Kunne vi ikkke også få den endelige (og fungerende) Query at se?
Synes godt om
Slettet bruger
02. april 2012 - 10:01#23
Lukker
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.