uitlezen van 2 verschillende soorten projecten
Ik heb twee verschillende soorten projecten gemaakt één is een soort game die je kunt downloaden. En de andere is een website waar een link van de pagina staat weergeven. Ook heeft de websites één afbeelding die ik wil laten zien en games heeft twee afbeeldingen. hoe kan ik dat tegelijk uit laten lezen in een overzichtspagina.
want ik wil de projecten wel uiteindelijk op datum gesorteerd hebben.
hieronder een idee hoe ik erover dacht. maar dit was niet goed. ook wil dit script uiteindelijk kunnen uitbreiden met alleen voor video's(maar dat is latere zorg).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$id = $_GET['id'];
$resultaat = mysql_query ("SELECT id,titel, subtitel, url_plaatje, url_afbeelding_1, url_afbeelding_2, omschrijving, download_project, url_website FROM Project WHERE id ='$id'", $db) ;
while ($rij = mysql_fetch_array($resultaat))
{
echo "<h2>".$rij['titel']. "</h2>"
."<p>".$rij['subtitel']."</p>"."<br>"
."<img src='".$rij['url_plaatje'].".jpg' width='400'/>"
."<p>".$rij['omschrijving']."</p>"
."<img src='".$rij['url_afbeelding_1'].".jpg' width='600'/>"
."<img src='".$rij['url_afbeelding_2'].".jpg' width='600'/>" // deze laten zien wanneer in database 2e afbeelding is
."<a href='".$rij['url_website']."' target='_blank' />".$rij['url_website']."</a>"
."<a href='".$rij['download_project'].".zip' target='_blank' />Download hier het resultaat</a>"; // deze laten zien wanneer er in de database een project staat ingevuld.
}
[/code]
$id = $_GET['id'];
$resultaat = mysql_query ("SELECT id,titel, subtitel, url_plaatje, url_afbeelding_1, url_afbeelding_2, omschrijving, download_project, url_website FROM Project WHERE id ='$id'", $db) ;
while ($rij = mysql_fetch_array($resultaat))
{
echo "<h2>".$rij['titel']. "</h2>"
."<p>".$rij['subtitel']."</p>"."<br>"
."<img src='".$rij['url_plaatje'].".jpg' width='400'/>"
."<p>".$rij['omschrijving']."</p>"
."<img src='".$rij['url_afbeelding_1'].".jpg' width='600'/>"
."<img src='".$rij['url_afbeelding_2'].".jpg' width='600'/>" // deze laten zien wanneer in database 2e afbeelding is
."<a href='".$rij['url_website']."' target='_blank' />".$rij['url_website']."</a>"
."<a href='".$rij['download_project'].".zip' target='_blank' />Download hier het resultaat</a>"; // deze laten zien wanneer er in de database een project staat ingevuld.
}
[/code]
Gewijzigd op 28/08/2014 16:17:51 door Enrico van der List
- Stap bij voorkeur over op de functies van MySQLi
Waar loop je nu op ast, en wat gebeurt er nu?
media_id (integer, primary, auto-increment)
type (varchar) // geeft aan of het om een image gaat of een video
url (varchar)
project_id (integer, index)
Toevoeging op 28/08/2014 17:38:24:
zodra je kolomnamen gaat creëren als url_afbeelding_1 en url_afbeelding_2 etc dan klopt je database indeling niet meer.
- Aar - op 28/08/2014 17:34:12:
- SQL-injection is mogelijk. Bescherm je $_GET met mysql_real_escape-string().
- Stap bij voorkeur over op de functies van MySQLi
Waar loop je nu op ast, en wat gebeurt er nu?
- Stap bij voorkeur over op de functies van MySQLi
Waar loop je nu op ast, en wat gebeurt er nu?
momenteel kan ik projecten uitlezen en weergeven met 2 afbeeldingen en een downloadlink. Maar ik wil nu ook projecten weergeven met maar 1 afbeelding en een link naar de website. hoe kan ik die query uitlezen maar toch gescheiden houden.
als je dat gedaan hebt dan weet je je project_id. daarmee kun je een tweede query doen die de media urls voor je uitleest zoals ik hierboven beschreven heb. Met een JOIN kan ook maar levert alleen maar records op met telkens dezelfde project data en alleen een andere media-url.
Toevoeging op 28/08/2014 18:13:16:
en als je tevreden bent over je huidige database indeling (wat je niet zou moeten zijn) dan is er nog altijd de NULL waarde. staat een van de kolommen op NULL dan skip je die gewoon
Gewijzigd op 28/08/2014 18:07:56 door Frank Nietbelangrijk
Frank Nietbelangrijk op 28/08/2014 18:07:38:
met een tweede query dus. eerst doe je wat je nu al doet, alleen kunnen die afbeeldingen er uit.
als je dat gedaan hebt dan weet je je project_id. daarmee kun je een tweede query doen die de media urls voor je uitleest zoals ik hierboven beschreven heb. Met een JOIN kan ook maar levert alleen maar records op met telkens dezelfde project data en alleen een andere media-url.
als je dat gedaan hebt dan weet je je project_id. daarmee kun je een tweede query doen die de media urls voor je uitleest zoals ik hierboven beschreven heb. Met een JOIN kan ook maar levert alleen maar records op met telkens dezelfde project data en alleen een andere media-url.
maar als ik dan meerdere projecten heb met een link naar een website hoe moet het dan want als ik eruit begrijp roep ik dan maar 1 project aan
Toevoeging op 28/08/2014 18:25:50:
projecten
==========
id
titel
subtitel
omschrijving
download_project
url_website
media
======
id
type
url
project_id ===> deze geeft dus aan bij welk project dit plaatje/video hoort!
Frank Nietbelangrijk op 28/08/2014 18:07:38:
met een tweede query dus. eerst doe je wat je nu al doet, alleen kunnen die afbeeldingen er uit.
als je dat gedaan hebt dan weet je je project_id. daarmee kun je een tweede query doen die de media urls voor je uitleest zoals ik hierboven beschreven heb. Met een JOIN kan ook maar levert alleen maar records op met telkens dezelfde project data en alleen een andere media-url.
als je dat gedaan hebt dan weet je je project_id. daarmee kun je een tweede query doen die de media urls voor je uitleest zoals ik hierboven beschreven heb. Met een JOIN kan ook maar levert alleen maar records op met telkens dezelfde project data en alleen een andere media-url.
Wat is daar het probleem van?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$id = $_GET['id'];
$resultaat = mysql_query ("SELECT id,titel, subtitel, url_plaatje, url_afbeelding_1, url_afbeelding_2, omschrijving, download_project, url_website FROM Project WHERE id ='$id'", $db) ;
while ($rij = mysql_fetch_array($resultaat))
{
echo "<h2>".$rij['titel']. "</h2>"
."<p>".$rij['subtitel']."</p>"."<br>"
."<img src='".$rij['url_plaatje'].".jpg' width='400'/>"
."<p>".$rij['omschrijving']."</p>"
."<img src='".$rij['url_afbeelding_1'].".jpg' width='600'/>";
echo join <img src='".$rij['url_afbeelding_2'].".jpg' width='600'/>" ;// deze laten zien wanneer in database 2e afbeelding is
echo join <a href='".$rij['url_website']."' target='_blank' />".$rij['url_website']."</a>";
echo join <a href='".$rij['download_project'].".zip' target='_blank' />Download hier het resultaat</a>"; // deze laten zien wanneer er in de database een project staat ingevuld.
}
[/code]
zou dit zo ook kunnen of heeft dit hetzelfde effect?
$id = $_GET['id'];
$resultaat = mysql_query ("SELECT id,titel, subtitel, url_plaatje, url_afbeelding_1, url_afbeelding_2, omschrijving, download_project, url_website FROM Project WHERE id ='$id'", $db) ;
while ($rij = mysql_fetch_array($resultaat))
{
echo "<h2>".$rij['titel']. "</h2>"
."<p>".$rij['subtitel']."</p>"."<br>"
."<img src='".$rij['url_plaatje'].".jpg' width='400'/>"
."<p>".$rij['omschrijving']."</p>"
."<img src='".$rij['url_afbeelding_1'].".jpg' width='600'/>";
echo join <img src='".$rij['url_afbeelding_2'].".jpg' width='600'/>" ;// deze laten zien wanneer in database 2e afbeelding is
echo join <a href='".$rij['url_website']."' target='_blank' />".$rij['url_website']."</a>";
echo join <a href='".$rij['download_project'].".zip' target='_blank' />Download hier het resultaat</a>"; // deze laten zien wanneer er in de database een project staat ingevuld.
}
[/code]
zou dit zo ook kunnen of heeft dit hetzelfde effect?
We hebben het over JOIN's in MySQL, niet in PHP ;-)
Ger van Steenderen op 28/08/2014 18:39:58:
Wat is daar het probleem van?
Niets het gaat soms ook om voorkeur.
Hmm PHP heeft ook een functie met de naam JOIN natuurlijk :-)
Code (php)
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
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
CREATE TABLE IF NOT EXISTS `projecten` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titel` varchar(50) NOT NULL,
`subtitel` varchar(50) NOT NULL,
`omschrijving` varchar(50) NOT NULL,
`download_project` varchar(50) NOT NULL,
`url_website` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `projecten` (`id`, `titel`, `subtitel`, `omschrijving`, `download_project`, `url_website`) VALUES
(1, 'FC Knudde', 'voetbalsite', 'voetbal website', 'ergens', 'www.fcknudde.nl'),
(2, 'Webwinkel', 'Altijd de goedkoopste', 'De goedkoopste webwinkel van Nederland', 'ergens-anders', 'www.goedkoop-nederland.nl');
CREATE TABLE IF NOT EXISTS `media` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`url` varchar(50) NOT NULL,
`project_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `project_id` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `media` (`id`, `type`, `url`, `project_id`) VALUES
(1, 'image', '/plaatje.jpg', 1),
(2, 'video', '/video.mpg', 1),
(3, 'image', '/plaatje2.jpg', 2);
`id` int(11) NOT NULL AUTO_INCREMENT,
`titel` varchar(50) NOT NULL,
`subtitel` varchar(50) NOT NULL,
`omschrijving` varchar(50) NOT NULL,
`download_project` varchar(50) NOT NULL,
`url_website` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `projecten` (`id`, `titel`, `subtitel`, `omschrijving`, `download_project`, `url_website`) VALUES
(1, 'FC Knudde', 'voetbalsite', 'voetbal website', 'ergens', 'www.fcknudde.nl'),
(2, 'Webwinkel', 'Altijd de goedkoopste', 'De goedkoopste webwinkel van Nederland', 'ergens-anders', 'www.goedkoop-nederland.nl');
CREATE TABLE IF NOT EXISTS `media` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`url` varchar(50) NOT NULL,
`project_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `project_id` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `media` (`id`, `type`, `url`, `project_id`) VALUES
(1, 'image', '/plaatje.jpg', 1),
(2, 'video', '/video.mpg', 1),
(3, 'image', '/plaatje2.jpg', 2);
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
projecten.id,
projecten.titel,
projecten.subtitel,
projecten.omschrijving,
projecten.download_project,
projecten.url_website,
media.type,
media.url
FROM
projecten
JOIN
media
ON
projecten.id=media.project_id
projecten.id,
projecten.titel,
projecten.subtitel,
projecten.omschrijving,
projecten.download_project,
projecten.url_website,
media.type,
media.url
FROM
projecten
JOIN
media
ON
projecten.id=media.project_id
Toevoeging op 29/08/2014 17:10:26:
Resultaat:
Code (php)
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
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
Array
(
[0] => Array
(
[id] => 1
[titel] => FC Knudde
[subtitel] => voetbalsite
[omschrijving] => voetbal website
[download_project] => ergens
[url_website] => www.fcknudde.nl
[type] => image
[url] => /plaatje.jpg
)
[1] => Array
(
[id] => 1
[titel] => FC Knudde
[subtitel] => voetbalsite
[omschrijving] => voetbal website
[download_project] => ergens
[url_website] => www.fcknudde.nl
[type] => video
[url] => /video.mpg
)
[2] => Array
(
[id] => 2
[titel] => Webwinkel
[subtitel] => Altijd de goedkoopste
[omschrijving] => De goedkoopste webwinkel van Nederland
[download_project] => ergens-anders
[url_website] => www.goedkoop-nederland.nl
[type] => image
[url] => /plaatje2.jpg
)
)
(
[0] => Array
(
[id] => 1
[titel] => FC Knudde
[subtitel] => voetbalsite
[omschrijving] => voetbal website
[download_project] => ergens
[url_website] => www.fcknudde.nl
[type] => image
[url] => /plaatje.jpg
)
[1] => Array
(
[id] => 1
[titel] => FC Knudde
[subtitel] => voetbalsite
[omschrijving] => voetbal website
[download_project] => ergens
[url_website] => www.fcknudde.nl
[type] => video
[url] => /video.mpg
)
[2] => Array
(
[id] => 2
[titel] => Webwinkel
[subtitel] => Altijd de goedkoopste
[omschrijving] => De goedkoopste webwinkel van Nederland
[download_project] => ergens-anders
[url_website] => www.goedkoop-nederland.nl
[type] => image
[url] => /plaatje2.jpg
)
)
Gewijzigd op 29/08/2014 17:26:23 door Frank Nietbelangrijk