Ik wil alle PM's uit mijn database selecteren die toegevoegd zijn aan de friendlist van de persoon.

Dit is de query tot nu toe:
$pm_sql = "SELECT * FROM pm WHERE user = '". $user_array['id'] . "' AND deleted = '0' AND (SELECT id FROM friends WHERE user = '" . $user_array['id'] . "' AND friend = '" . $Hier_dus_de_id_van_de_user_die_het_bericht_heeft_verzonden . "') ORDER BY date DESC LIMIT 0,1001";

Dit zijn mijn tabellen:

Tabel pm:
`id` int(225) NOT NULL auto_increment,
`user` int(10) default NULL,
`from` int(10) default NULL,
`title` varchar(99) collate latin1_general_ci default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`mess` text collate latin1_general_ci,
`opend` int(1) default '0',
`replied` int(1) default '0',
`deleted` int(1) NOT NULL,
UNIQUE KEY `id` (`id`)

Tabel friends:
`id` int(255) NOT NULL auto_increment,
`user` int(10) NOT NULL,
`friend` int(10) NOT NULL,
PRIMARY KEY (`id`)

Mijn vraag is, hoe kan ik in die query er al achter komen wie de PM heeft verstuurd en die dan ipv $Hier_dus_de_id_van_de_user_die_het_bericht_heeft_verzonden?

Bvd, Tommy!
Ik zou ten eerste niet de friends koppelen aan je PM systeem. Je wil toch lijkt mij ook wel berichten sturen aan niet-vrienden?

Ten tweede zou ik eens zoeken naar INNER JOIN voor die afzenders als ik jou was. Je komt dan zoiets tegen:


<?
$pm_sql= "SELECT
u.nickname
FROM
users AS u
INNER JOIN
pm AS pm
ON
pm.from = u.id
WHERE
pm.id = " . $Hier_dus_de_het_id_van_het_bericht_dat_de_andere_gebruiker_heeft_gevonden;
?>

Succes ermee!
Ejj bedankt ik ga eens kijke of ik er nu uit komt, ik had namelijk nog nooit van INNER JOIN gehoord!

En als je soms weet wat voor berichten er worden verstuurd..

EDIT: ik kom er niet uit.. Ik snap het niet echt;(

EDIT2: Dan maar geen friend list hea;)
Je kan de pm berichten dan toch ook los van de friends maken? dus wanneer je verzend kan dat alleen naar een friend, alleen wanneer je de afzender ophaalt selecteer je natuurlijk wel de user tabel...

Bij het verzenden natuurlijk wel controleren of de begunstigde wel een friend is.

Dan is dat ook weer opgelsot :) voor alles is een oplossing, ik zou de moed niet te snel opgeve!

Succes!

Reageren