Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Oversætte Id'er til navne.

0 views
Skip to first unread message

Jacob d'Andrade

unread,
Jun 22, 2009, 3:27:55 PM6/22/09
to
Hej ng

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


Gert Krabsen

unread,
Jun 22, 2009, 3:41:58 PM6/22/09
to
Jacob d'Andrade skrev:

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..


Johan Holst Nielsen

unread,
Jun 22, 2009, 4:25:03 PM6/22/09
to

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
?>

Birger Sørensen

unread,
Jun 23, 2009, 12:38:08 AM6/23/09
to
Jacob d'Andrade kom med fᅵlgende:
> Hej ng
>
> 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

En til mange relationer, bᅵr altid representeres som separat tabel.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk


Jacob d'Andrade

unread,
Jun 23, 2009, 4:49:59 AM6/23/09
to

"Gert Krabsen" <fjernk...@fjernkrabsenfjern.dk> skrev i meddelelsen
news:4a3fdd83$0$48245$1472...@news.sunsite.dk...

>
> 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..
>

Ahh, ja selvf�lgelig :-) ... Jeg tror jeg kan se lyset. Jeg takker og pr�ver
mig frem.

Mvh Jacob

0 new messages