Hoe te normaliseren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

24/06/2010 13:37:00
Quote Anchor link
Afbeelding

Hierboven een afbeelding van wat ik graag wil bereiken.

De rubriek naam lukt wel met daaronder de websites.
Maar achter iedere website moeten vinkjes komen te staan.

Ik heb 3 tabellen aangemaakt:
- software_rubriek
- software_naam
- software

In "software" heb ik de website namen staan en een kolom met "software_naam_id" waar ik een cijfer inzet die verband houd met de tabel "software_naam". (1,2,3,4 na gelang deze website deze software aanbied)
Ook staat in deze tabel een kolom "software_rubriek_id" zodat je kunt aangeven in welke rubriek deze link moet komen te staan.

In de tabel "software" zet ik dus de websites in.
Voor iedere software dat ze aanbieden een nieuwe regel.

Nu lukt het niet om de juiste vinkjes bij de juiste websitenaam onder de juiste software te plaatsen.
Wie weet hoe ik dit voor elkaar krijg.
Waarschijnlijk doe ik iets niet goed met het normaliseren, dat blijft moeilijk voor me.


Tabel: software_rubriek

id | naam
1 | Fotoalbum
2 | Kalender

--------------------------
Tabel: software_naam

id | naam
1 | mac
2 | linux
3 | online
4 | downloaden

------------------------------
Tabel: software

id | naam | software_naam_id | software_rubriek_id
1 | website1 | 1.......................| 1
2 | website1 | 2.......................| 1
3 | website1 | 3.......................| 1
4 | website2 | 1.......................| 2
enz.


Hieronder de code die ik nu heb maar deze werkt niet helemaal.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<table width="620" border="0" align="center" cellpadding="2">
    <tr>
      <td height="25" width="620" align="center" class="favoriet-kopje-grijs" colspan="5">Aanbieders met Mac/Apple of Linux software</td></tr>
  <tr>
 
    <td>&nbsp;</td>
    <?php
    //laat de naam zien van de software
    $querynaam = "
    SELECT
        id,
        naam
    FROM
        software_naam
    ORDER BY
        id
    "
;
    $resultnaam = mysql_query($querynaam);
    if(!$resultnaam)
    {

        trigger_error(mysql_error().' ('.$querynaam.')');
    }

    else{
        while($rownaam = mysql_fetch_assoc($resultnaam)){
        ?>

    <td align="center"><strong><?php echo $rownaam['naam']; ?></strong></td>
    <?php
    }
    }

    ?>

  </tr>
  <!--begin van Fotoalbums -->
  
  <?php
    //laat de naam zien van de rubriek
    $query = "
    SELECT
        id,
        naam
    FROM
        software_rubriek
    ORDER BY
        id
    "
;
    $result = mysql_query($query);
    if(!$result)
    {

        trigger_error(mysql_error().' ('.$query.')');
    }

    else{
        while($row = mysql_fetch_assoc($result)){
        ?>

        <tr>
    <td class="naam" bgcolor="#EAF4FF"><?php echo $row['naam']; ?></td>
    <td bgcolor="#EAF4FF">&nbsp;</td>
    <td bgcolor="#EAF4FF">&nbsp;</td>
    <td bgcolor="#EAF4FF">&nbsp;</td>
    <td bgcolor="#EAF4FF">&nbsp;</td>
    
  </tr>
  <?php
    
     //laat de naam zien van de website
    $querysoftware = "
    SELECT
        software_rubriek.id,
        software.naam,
        software.link_id,
        software.software_rubriek_id
    FROM
        software_rubriek
    LEFT JOIN
        software
    ON
        software_rubriek.id = software.software_rubriek_id
    WHERE
        software.software_rubriek_id = "
. $row['id']."
    GROUP BY
        software.naam"
;
    $resultsoftware = mysql_query($querysoftware);
    if(!$resultsoftware)
    {

        trigger_error(mysql_error().' ('.$querysoftware.')');
    }

    else{
        while($rowsoftware = mysql_fetch_assoc($resultsoftware)){
        ?>

    <tr>
    <td class="mac_tabel"><?php // naam van webshop
        if($rowsoftware['link_id'] == 471 ){
        echo '<a href="uit.php?id='. $rowsoftware['link_id'] .'" target="_blank" title="Mac en/of Linux software bij '. $rowsoftware['naam'] .'">'. $rowsoftware['naam'] .'</a>&nbsp;<img src="images/bullet_star.png" border="0" title="tip!">';
        }
else{  
        echo '<a href="uit.php?id='. $rowsoftware['link_id'] .'" target="_blank" title="Mac en/of Linux software bij '. $rowsoftware['naam'] .'">'. $rowsoftware['naam'] .'</a>';
        }

        ?>
</td>
        <?php
    
     //laat de vinkjes zien
    
    
        
        
    $queryvinkje = "
    SELECT
        software_naam.id,
        software.naam,
        software.software_naam_id AS ingevuld
    FROM
        software_naam
    LEFT JOIN
        software
    ON
        software.software_naam_id = software_naam.id
    
    "
;
    $resultvinkje = mysql_query($queryvinkje);
    if(!$resultvinkje)
    {

        trigger_error(mysql_error().' ('.$queryvinkje.')');
    }

    else{
        while($rowvinkje = mysql_fetch_assoc($resultvinkje)){
        // mac software ja of nee
        if( $rowvinkje['ingevuld'] ){
        ?>

    <td class="mac_tabel" align="center"><img src="images/tick.png" border="0" ></td>
    <?php
        }else{
        echo '';
        }
     }

    ?>

  </tr>
  <?php
  
  
  }
    }
    }
    }
    }

    ?>

    <!--eind van Fotoalbums -->
    
  
</table>
 
PHP hulp

PHP hulp

22/12/2024 04:28:35
 
TJVB tvb

TJVB tvb

24/06/2010 14:32:26
Quote Anchor link
Voor het volledig normaliseren moet je nog een tabel voor websites.
En kan een website in meerdere categoriën staan?
 

24/06/2010 15:55:18
Quote Anchor link
@TJVB tvb

Ja, websites kunnen in meerdere rubrieken staan.

De websites staan al in de tabel "software".
Of moet ik echt een 4de tabel maken met alleen de website namen?

Nu wordt het voor mij nog ingewikkelder....
Gewijzigd op 24/06/2010 15:56:54 door
 

25/06/2010 15:12:45
Quote Anchor link
Omdat het niet lukt heb ik het nu met maar 2 tabellen gedaan.
Het zal wel niet zo horen maar het werkt wel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<table width="620" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td height="25" width="620" align="center" class="favoriet-kopje-grijs" colspan="5">Aanbieders met Mac/Apple of Linux software</td></tr>
  <tr>
 
    <td>&nbsp;</td>
    <td align="center"><strong>Mac | Apple</strong></td>
    <td align="center"><strong>Linux</strong></td>
    <td align="center"><strong>Online</strong></td>
    <td align="center"><strong>Downloaden</strong></td>
  </tr>
  <?php
    //laat de naam zien van de rubriek
    $query = "
    SELECT
        id,
        naam
    FROM
        software_rubriek
    ORDER BY
        id
    "
;
    $result = mysql_query($query);
    if(!$result)
    {

        trigger_error(mysql_error().' ('.$query.')');
    }

    else{
        while($row = mysql_fetch_assoc($result)){
        ?>

        <tr>
    <td class="naam" bgcolor="#EAF4FF" width="20%"><?php echo $row['naam']; ?></td>
    <td bgcolor="#EAF4FF" width="20%">&nbsp;</td>
    <td bgcolor="#EAF4FF" width="20%">&nbsp;</td>
    <td bgcolor="#FFECEC" width="20%">&nbsp;</td>
    <td bgcolor="#FFECEC" width="20%">&nbsp;</td>
  </tr>
  <?php
    
     //laat de naam zien van de website
    $querysoftware = "
    SELECT
        id,
        link_id,
        naam AS link_naam,
        software_rubriek_id
    FROM
        software_linken
    WHERE
        software_rubriek_id = "
. $row['id']."
    ORDER BY
        naam"
;
    $resultsoftware = mysql_query($querysoftware);
    if(!$resultsoftware)
    {

        trigger_error(mysql_error().' ('.$querysoftware.')');
    }

    else{
        while($rowsoftware = mysql_fetch_assoc($resultsoftware)){
        ?>

    <tr>
    <td class="mac_tabel"><?php // naam van webshop
        if($rowsoftware['link_id'] == 471 || $rowsoftware['link_id'] == 472 || $rowsoftware['link_id'] == 473 || $rowsoftware['link_id'] == 474){
        echo '<a href="uit.php?id='. $rowsoftware['link_id'] .'" target="_blank" title="Mac en/of Linux software bij '. $rowsoftware['link_naam'] .'">'. $rowsoftware['link_naam'] .'</a>&nbsp;<img src="images/bullet_star.png" border="0" title="tip!">';
        }
else{  
        echo '<a href="uit.php?id='. $rowsoftware['link_id'] .'" target="_blank" title="Mac en/of Linux software bij '. $rowsoftware['link_naam'] .'">'. $rowsoftware['link_naam'] .'</a>';
        }

        ?>
</td>
        <?php
    
     //laat de vinkjes zien
    $queryvinkje = "
    SELECT
        software_rubriek.id,
        software_linken.link_id,
        software_linken.mac_software,
        software_linken.linux_software,
        software_linken.online_software,
        software_linken.download_software,
        software_linken.software_rubriek_id
    FROM
        software_linken
    LEFT JOIN
        software_rubriek
    ON
        software_linken.software_rubriek_id = software_rubriek.id
    WHERE
        software_linken.id = "
. $rowsoftware['id']."
    GROUP BY
        software_linken.software_rubriek_id
    "
;
    $resultvinkje = mysql_query($queryvinkje);
    if(!$resultvinkje)
    {

        trigger_error(mysql_error().' ('.$queryvinkje.')');
    }

    else{
        $rowvinkje = mysql_fetch_assoc($resultvinkje);
        // mac software ja of nee
        if($rowvinkje['mac_software'] == 1){
            ?>

            <td class="mac_tabel" align="center"><img src="images/tick.png" border="0" ></td>
            <?php
            }else{
            echo '<td class="mac_tabel" align="center">&nbsp;</td>';
            }
    
            
        // linux software ja of nee
        if($rowvinkje['linux_software'] == 1){
            ?>

            <td class="mac_tabel" align="center"><img src="images/tick.png" border="0" ></td>
            <?php
            }else{
            echo '<td class="mac_tabel" align="center">&nbsp;</td>';
            }

            
        // online software ja of nee
        if($rowvinkje['online_software'] == 1){
            ?>

            <td class="mac_tabel" align="center"><img src="images/tick.png" border="0" ></td>
            <?php
            }else{
            echo '<td class="mac_tabel" align="center">&nbsp;</td>';
            }

            
        // download software ja of nee
        if($rowvinkje['download_software'] == 1){
            ?>

            <td class="mac_tabel" align="center"><img src="images/tick.png" border="0" ></td>
            <?php
            }else{
            echo '<td class="mac_tabel" align="center">&nbsp;</td>';
            }    
                        
        }

    
    ?>

  </tr>
  <?php
      }
    }
    }
    }

    ?>

</table>
Gewijzigd op 25/06/2010 15:14:43 door
 
Noppes Homeland

Noppes Homeland

25/06/2010 17:10:44
Quote Anchor link
Een berichtje van een `vriendelijke` vriend
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$queryvinkje = "
    SELECT
        software_rubriek.id,
        software_linken.link_id,
        software_linken.mac_software,
        software_linken.linux_software,
        software_linken.online_software,
        software_linken.download_software,
        software_linken.software_rubriek_id
    FROM
        software_linken
    LEFT JOIN
        software_rubriek
    ON
        software_linken.software_rubriek_id = software_rubriek.id
    WHERE
        software_linken.id = ". $rowsoftware['id']."
    GROUP BY
        software_linken.software_rubriek_id
    ";

De GROUP BY hoort niet thuis in deze query, deze gebruik je alleen als je SUM/COUNT/AVG/MIN/MAX ed in je query gebruikt
http://wiki.pfz.nl/Group_by

Positief om dit topic te zien.

Ik heb een linkje v:
http://www.yapf.net/index.php/Database_ontwerp_101
Gewijzigd op 25/06/2010 17:54:13 door Noppes Homeland
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.