| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Oversætte Id'er til navne. Fra : Jacob d'Andrade | 
  Dato :  22-06-09 20:28 |  
  |   
            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 (22-06-2009) 
         
	
            | Kommentar Fra : Gert Krabsen | 
  Dato :  22-06-09 20:42 |  
  |  
 
            Jacob d'Andrade skrev:
 > 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.
 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..
            
              |   |   
            
        
 
            
         
           Jacob d'Andrade (23-06-2009) 
         
	
            | Kommentar Fra : Jacob d'Andrade | 
  Dato :  23-06-09 09:50 |  
  |   
            
"Gert Krabsen" <fjernkrabsen@fjernkrabsenfjern.dk> skrev i meddelelsen 
 news:4a3fdd83$0$48245$14726298@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 
            
              |   |   
            
        
 
            
         
           Johan Holst Nielsen (22-06-2009) 
         
	
            | Kommentar Fra : Johan Holst Nielsen | 
  Dato :  22-06-09 21:25 |  
  |  
 
            Jacob d'Andrade wrote:
 > 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.
 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 (23-06-2009) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  23-06-09 05:38 |  
  |  
 
            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
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |