Har et "simpelt" problem, som jeg ikke ved hvordan jeg skal l�se.
Jeg har to tabeller:
contacts og contactgroups. (MySQL)
contacts har f�lgende felter:
id, name, fullname, contactgroupid
contactgroups har f�lgende:
id, name, desc.
I contactgroupid feltet i contacts tabellen har jeg gemt, id'erne p� de
grupper som personen er medlem af, adskildt med komma, dvs kontakt gruppe id
1,2,3 osv ved en enkelt bruger. N�r jeg s� hiver info ud om den givende
bruger, vil jeg gerne have oversat kontakt gruppe id'erne til kontakt gruppe
navnene, og pr�senteret ligesom id'erne, alts� adskildt med komma.
Har googlet lidt, men ved ikke hvad denne "funktion" hedder.
H�ber nogen kan hj�lpe.
Mvh Jacob
Ja, men ikke den vej du �nsker :-(
Det er simpelthen noget klamp at have et felt med flere v�rdier i. M�ske
ser du ikke problemet nu, men den dag du har mere end 11 grupper og skal
finde alle de contacts, der er tilknyttet gruppe 2, hvordan g�r du s� det?
Du b�r derfor skynde dig at lave et bedre database-design; du mangler en
tabel:
contact
contactid, name, fullname
contactgroup
contactgroupid, name, desc.
Og den nye:
-----------
contactingroup
contactingroupid, contactid, contactgroupid
..og s� kigge p� udtr�kket bagefter..
Som Gert n�vner - er en �ndring af designet det bedste... men ellers kan
f�lgende bruges
<?php
$sql = "SELECT id, name FROM contactgroups";
$res = mysql_query($sql);
$groups = array();
while($r = mysql_fetch_assoc($res)) { $groups[$r['id']] = $r['name']; }
$sql = "SELECT name, fullname, contactgroupid FROM contacts ORDER BY name";
$res = mysql_query($sql);
echo '<table border="1">';
echo '<tr><th>Navn</th><th>Fuld navn</th><th>Grupper</th></tr>';
while($r = mysql_fetch_assoc($res)) {
echo '<tr>';
echo '<td>'.$r['name'].'</td>';
echo '<td>'.$r['fullname'].'</td>';
echo '<td>';
$usergroupid = explode(',',$r['contactgroupid']);
$usergroups = array();
foreach($usergroupid as $uid) { $usergroups[] = $groups[$uid]; }
echo implode(', ',$usergroups);
echo '</td>';
echo '</tr>';
}
echo '</table>';
?>
Men som sagt - ovenst�ende b�r kun v�re en "n�dl�sning" - er ikke best
practice - langt fra.
--
Johan Holst Nielsen
www.phpgeek.dk
?>
En til mange relationer, bᅵr altid representeres som separat tabel.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
Mvh Jacob