[MYSQL] Joins
ik ben gisteren begonnen met het leren van normalisate, en joins ect. Ik kom er al redelijk ver mee alleen zit ik nu vast met dit script:
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
40
41
42
43
44
45
46
47
48
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
<?php
$result = mysql_query("SELECT
N.newstitel,
N.newsmessage,
N.date,
N.newssectionid,
U.username,
U.memberid
FROM
news AS N
INNER
JOIN
members AS U
ON
N.memberid = U.memberid
ORDER BY N.id DESC
LIMIT
2
") or die(mysql_error());
while($r = mysql_fetch_assoc($result)) {
?>
<div class="news_titelbar">
<p class="p1_titelbar">
<?php echo $r['newstitel']; ?>
</p>
<p class="p3_titelbar">
<?php echo $r['username']; ?> @ <?php echo date("F d", strtotime($r['date'])); ?>
</p>
<p class="p2_titelbar">
POSTED BY
</p>
</div>
<p class="p1_content">
<img src="images/COD2.png" alt="COD2">
</p>
<p class="p2_content">
<?php echo $r['newsmessage']; ?>
</p>
<p class="p3_content">
<form method="post" action="#">
<input name="readmore" type="image" src="images/readmore.png" />
<input name="comments" type="image" src="images/comments.png" />
</form>
</p>
<?php
}
?>
$result = mysql_query("SELECT
N.newstitel,
N.newsmessage,
N.date,
N.newssectionid,
U.username,
U.memberid
FROM
news AS N
INNER
JOIN
members AS U
ON
N.memberid = U.memberid
ORDER BY N.id DESC
LIMIT
2
") or die(mysql_error());
while($r = mysql_fetch_assoc($result)) {
?>
<div class="news_titelbar">
<p class="p1_titelbar">
<?php echo $r['newstitel']; ?>
</p>
<p class="p3_titelbar">
<?php echo $r['username']; ?> @ <?php echo date("F d", strtotime($r['date'])); ?>
</p>
<p class="p2_titelbar">
POSTED BY
</p>
</div>
<p class="p1_content">
<img src="images/COD2.png" alt="COD2">
</p>
<p class="p2_content">
<?php echo $r['newsmessage']; ?>
</p>
<p class="p3_content">
<form method="post" action="#">
<input name="readmore" type="image" src="images/readmore.png" />
<input name="comments" type="image" src="images/comments.png" />
</form>
</p>
<?php
}
?>
Deze werkt uitstekend alleen had ik er graag nog iets anders bij gewild. Ik weet niet precies hoe ik het moet uitleggen, maar het nieuws zit in catagorieen omdat niet al het nieuws voor iedereen bedoeld is. Ik heb dus ook nog een tabel genaamd: newssection.
Ik kom er alleen niet uit hoe ik die er ook nog bij kan betrekken. Ik zat zelf te denk aan zoiets:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
<?php
$result = mysql_query("SELECT
N.newstitel,
N.newssectionid,
N.newsmessage,
N.date,
N.newssectionid,
U.username,
U.memberid,
S.newssectionname
FROM
news AS N
INNER
JOIN
members AS U
INNER
JOIN
newssections AS S
ON
N.memberid = U.memberid,
N.newssectionid = S.newssectionsid
ORDER BY N.id DESC
LIMIT
2
") or die(mysql_error());
while($r = mysql_fetch_assoc($result)) {
?>
<div class="news_titelbar">
<p class="p1_titelbar">
<?php echo $r['newstitel']; ?>
</p>
<p class="p3_titelbar">
<?php echo $r['username']; ?> @ <?php echo date("F d", strtotime($r['date'])); ?>
</p>
<p class="p2_titelbar">
POSTED BY
</p>
</div>
<p class="p1_content">
<img src="images/COD2.png" alt="COD2">
</p>
<p class="p2_content">
<?php echo $r['newsmessage']; ?>
</p>
<p class="p3_content">
<form method="post" action="#">
<input name="readmore" type="image" src="images/readmore.png" />
<input name="comments" type="image" src="images/comments.png" />
</form>
</p>
<?php
}
?>
$result = mysql_query("SELECT
N.newstitel,
N.newssectionid,
N.newsmessage,
N.date,
N.newssectionid,
U.username,
U.memberid,
S.newssectionname
FROM
news AS N
INNER
JOIN
members AS U
INNER
JOIN
newssections AS S
ON
N.memberid = U.memberid,
N.newssectionid = S.newssectionsid
ORDER BY N.id DESC
LIMIT
2
") or die(mysql_error());
while($r = mysql_fetch_assoc($result)) {
?>
<div class="news_titelbar">
<p class="p1_titelbar">
<?php echo $r['newstitel']; ?>
</p>
<p class="p3_titelbar">
<?php echo $r['username']; ?> @ <?php echo date("F d", strtotime($r['date'])); ?>
</p>
<p class="p2_titelbar">
POSTED BY
</p>
</div>
<p class="p1_content">
<img src="images/COD2.png" alt="COD2">
</p>
<p class="p2_content">
<?php echo $r['newsmessage']; ?>
</p>
<p class="p3_content">
<form method="post" action="#">
<input name="readmore" type="image" src="images/readmore.png" />
<input name="comments" type="image" src="images/comments.png" />
</form>
</p>
<?php
}
?>
maar dan krijg ik een mooie: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.newssectionsid ORDER BY N.id DESC LIMIT 2' at line 20 error
Ik wou dus weten is dit mogelijk of niet?
http://www.phphulp.nl/php/tutorials/3/479/
Werk deze maar eens door, de syntax van je Multiple join query is niet goed.
Werk deze maar eens door, de syntax van je Multiple join query is niet goed.
Edit:
Pagina 6 van de tutorial.
Pagina 6 van de tutorial.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Klopt het trouwens dat er geen tutorials op phphulp zijn over relations. of kijk ik daar ook weer overheen,.
Relations in MySQL werkt niet goed, daarvoor heb je PostgreSQL of de MySQL InnoDB engine (vanaf MySQL5) nodig. Daarover zijn wel tuts te vinden. En over de opbouw van de database moet je naar normaliseren zoeken.