1 product met meerdere eigenschappen in 1 row

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 »

MIchiel Broersen

MIchiel Broersen

01/11/2015 12:31:56
Quote Anchor link
Ik heb een database gemaakt. Daarin staan "pets". Pets hebben verschillende eigenschappen zoals "minimumlevel", "maximumlevel", "element", maar ook "skills" en "locaties". Nu zit mijn probleem in het feit dat iedere "pet" die zijn eigen ID heeft meerdere "skills" en "locaties" kan hebben.

De pagina: http://wmomusic.org/fl1/flpets3.php

Ik doe iets helemaal fout... Ik krijg namelijk geen resultaten. Ik heb vanalles gelezen en geprobeerd, maar kan nergens een dergelijk voorbeeld vinden. Misschien moet ik iedere skill steeds afzonderlijk op laten halen (loop) uit de DB tabel? Ik heb echter geen idee hoe ik moet beginnen :)

Wat werkt wel: http://wmomusic.org/fl1/flpets2.php zo werkt het wel. Echter dat is niet de bedoeling. De bedoeling is iedere petID 1x displayen in de tabel.

mijn script:
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
<html>
<body text="#000000">
<?php
include("../connect.php");

$query="SELECT pets.PET_ID, pets.Petname, pets.element_id, elements.element_id, elements.elementname,
pets.Levelmin, pets.Levelmax, pets.imageurl, petskill.Pet_ID, petskill.Skill_ID, skills.SKILL_ID, GROUP_CONCAT(DISTINCT skills.skillname ORDER BY skills.skillname DESC SEPARATOR ', '), GROUP_CONCAT(locations.Location SEPARATOR ', '), petlocations.LOC_ID, petlocations.PET_ID, locations.LOC_ID
FROM pets
JOIN elements
ON pets.element_id=elements.element_id


JOIN petlocations
ON pets.PET_ID=petlocations.Pet_ID
JOIN locations
ON petlocations.LOC_ID=locations.LOC_ID


JOIN petskill
ON pets.PET_ID=petskill.Pet_ID
JOIN skills
ON petskill.Skill_ID=skills.SKILL_ID
GROUP BY pets.PET_ID
 LIMIT 0,30"
;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Earthpets</center></b><br><br>";
?>

<center>
<table border="1" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" width="900">
<tr>
<th>Pet name</th>
<th>Element</th>
<th>Levelmin</th>
<th>Levelmax</th>
<th>Skills</th>
<th>Location</th>
<th>Picture</th>

</tr>

<?php
$i
=0;
while ($i < $num) {

$Petname=mysql_result($result,$i,"Petname");
$elementname=mysql_result($result,$i,"elementname");
$Levelmin=mysql_result($result,$i,"Levelmin");
$Levelmax=mysql_result($result,$i,"Levelmax");
$skillname=mysql_result($result,$i,"skillname");
$Location=mysql_result($result,$i,"Location");
$imageurl=mysql_result($result,$i,"imageurl");
?>


<tr>
<td><?php echo $Petname; ?></td>
<td><?php echo $elementname; ?></td>
<td><?php echo $Levelmin; ?></td>
<td><?php echo $Levelmax; ?></td>
<td><?php echo $skillname; ?></td>
<td><?php echo $Location; ?></td>
<td><img src="<?php echo $imageurl; ?>"</td>
</tr>

<?php
$i
++;
}

?>

</body>
</html>

Wie heeft er een hint? Waar ga ik de mist in?
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 01/11/2015 13:36:15 door - Ariën -
 
PHP hulp

PHP hulp

29/04/2024 16:46:45
 
Pg Vincent

Pg Vincent

01/11/2015 12:42:46
Quote Anchor link
"Nu zit mijn probleem in het feit dat iedere "pet" die zijn eigen ID heeft meerdere "skills" en "locaties" kan hebben. "

Dan moeten de skills en locaties in aparte tabellen komen.

De gouden regel in databaseontwerp is: sla nooit meer dan één stuk informatie in een cel op en sla nooit data dubbel op.

En dat is zo omdat je anders dit soort problemen krijgt; je maakt nu blijkbaar meerdere rijen voor alle skills en locaties per pet en dat sla je weer plat met een group by, maar je selecteert verder geen aggregaten dus de group-by is een fout en dus klopt je datamodel niet met wat je wilt doen.
 
MIchiel Broersen

MIchiel Broersen

01/11/2015 13:01:33
Quote Anchor link
Hoe de indeling nu is: 1 table met Pet_ID en een klein aantal eigenschappen.

1 aparte table met pets.PET_ID=petlocations.Pet_ID
1 aparte table met petlocations (en ID)

1 aparte table met pets.PET_ID=petskill.Pet_ID
1 aparte table met petskills (en ID)

Hoe los ik dit op?
In business lijnen: een leverancier kan bezorgen bij meerdere klanten
een klant kan op 1 dag meerdere bestellingen doen

Kun je dat in 1 cell van een tabel echo-en? of desnoods in meerdere naast elkaar?

de indeling in de table is nu:
Pet_ID Skill_ID
1 5
1 6
1 29
1 30
1 15
1 31
1 32
1 10
1 12
1 13
1 14
2 5
2 6
2 29
2 30
2 31

Dat group by niet de oplossing is zie ik....dus moet het anders, maar ik zie niet hoe... ik breek er mijn hoofd over....al maanden. maar ik zie t niet
Gewijzigd op 01/11/2015 13:04:33 door MIchiel Broersen
 
MIchiel Broersen

MIchiel Broersen

03/11/2015 20:07:42
Quote Anchor link
MIchiel Broersen op 01/11/2015 13:01:33:
Hoe de indeling nu is: 1 table met Pet_ID en een klein aantal eigenschappen.

1 aparte table met pets.PET_ID=petlocations.Pet_ID
1 aparte table met petlocations (en ID)

1 aparte table met pets.PET_ID=petskill.Pet_ID
1 aparte table met petskills (en ID)

Hoe los ik dit op?
In business lijnen: een leverancier kan bezorgen bij meerdere klanten
een klant kan op 1 dag meerdere bestellingen doen

Kun je dat in 1 cell van een tabel echo-en? of desnoods in meerdere naast elkaar?

de indeling in de table is nu:
Pet_ID Skill_ID
1 5
1 6
1 29
1 30
1 15
1 31
1 32
1 10
1 12
1 13
1 14
2 5
2 6
2 29
2 30
2 31

Dat group by niet de oplossing is zie ik....dus moet het anders, maar ik zie niet hoe... ik breek er mijn hoofd over....al maanden. maar ik zie t niet



het is gelukt: http://wmomusic.org/fl1/test4.php GROUP_CONCAT en de juiste opbouw en select opdracht.
 



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.