Join
Hallo,
Ben al een tijdje bezig met een join query schrijven maar het lukt me telkens niet.
Ik heb een tabel content hierin staat het veld postedby, deze bevat het id van de gene die de content heeft gepost.
Ik heb een tabel user hierin staat het veld id en het veld username.
Ik wil dus dat als ik $['postedby'] gebruik dat er niet het id van de persoon komt te staan, maar de username.
Kan iemand mij aangeven hoe ik dit doe, heb al wel geprobeerd met tutorials maar krijg telkens niet het juiste resultaat.
Ben al een tijdje bezig met een join query schrijven maar het lukt me telkens niet.
Ik heb een tabel content hierin staat het veld postedby, deze bevat het id van de gene die de content heeft gepost.
Ik heb een tabel user hierin staat het veld id en het veld username.
Ik wil dus dat als ik $['postedby'] gebruik dat er niet het id van de persoon komt te staan, maar de username.
Kan iemand mij aangeven hoe ik dit doe, heb al wel geprobeerd met tutorials maar krijg telkens niet het juiste resultaat.
select u.username from user AS u,content AS c where c.postedby = u.id and c.postedby = $postedby waarschijnlijk word het zoiets
Gewijzigd op 21/10/2010 14:01:54 door Teun Hesseling
ik kom er nog niet uit, zal de code ff bij plaatsen.
Ik heb deze code, hier moet dus een join in komen zodat er bij $Rij['postedby'] geen id komt te staan maar de username behorende bij dit id.
Ik heb deze code, hier moet dus een join in komen zodat er bij $Rij['postedby'] geen id komt te staan maar de username behorende bij dit id.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<h1>Nieuwsbericht</h1>
<?php
$Query = "SELECT * FROM content WHERE id = ".$_GET['id']." ORDER BY id DESC";
$Resultaat = mysqli_query($Connect, $Query);
$Aantal = mysqli_num_rows($Resultaat);
if ( $Aantal == 0) {
echo"Het Gekozen nieuwsbericht is niet gevonden.";
}
else
{
while($Rij = mysqli_fetch_assoc ($Resultaat))
{
?>
<h2><?php echo $Rij['titel']?></h2> <small> <?php echo $Rij['postedby']?> | <?php echo $Rij['postdate']?> | <?php echo $Rij['posttime']?></small> <?php echo $Rij['description'];
}
}
?>
<?php
$Query = "SELECT * FROM content WHERE id = ".$_GET['id']." ORDER BY id DESC";
$Resultaat = mysqli_query($Connect, $Query);
$Aantal = mysqli_num_rows($Resultaat);
if ( $Aantal == 0) {
echo"Het Gekozen nieuwsbericht is niet gevonden.";
}
else
{
while($Rij = mysqli_fetch_assoc ($Resultaat))
{
?>
<h2><?php echo $Rij['titel']?></h2> <small> <?php echo $Rij['postedby']?> | <?php echo $Rij['postdate']?> | <?php echo $Rij['posttime']?></small> <?php echo $Rij['description'];
}
}
?>
Gewijzigd op 21/10/2010 14:29:58 door Lauris K
dat gaat zo natuurlijk niet werken aangezien je geen username selecteert van de tabel user
en dan de postedby veranderen naar username, ik weet niet of dit goed is, maar je kunt het zo proberen.
Code (php)
1
<?php $Query = "SELECT c,titel, c.postedby, c.postdate, c.postime, c.description u.username u.id FROM content AS c, user AS u WHERE u.id = ".$_GET['id']." AND u.id = c.id ORDER BY u.id DESC"; ?>
en dan de postedby veranderen naar username, ik weet niet of dit goed is, maar je kunt het zo proberen.
@Teun
Je mag de verschillende kolommen natuurlijk wel scheiden met een ,
Je mag de verschillende kolommen natuurlijk wel scheiden met een ,
Ik heb nu onderstaande code, ik krijg echter de melding die ik zelf heb ingesteld. het gekozen nieuwsbericht is niet gevonden, er zal dus wel iets fout zijn. c.user_id bestaat trouwens niet, het id van de content staat onder postedby. dus dit heb ik vervangen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$Query = "SELECT c.titel, c.postedby, c.postdate, c.posttime, c.description, u.username, u.id FROM content AS c LEFT JOIN user AS u ON u.id = c.postedby WHERE u.id = ".(int)$_GET['id']." ORDER BY u.id DESC";
//$Query = "SELECT * FROM content ORDER BY id DESC";
$Resultaat = mysqli_query($Connect, $Query);
$Aantal = mysqli_num_rows($Resultaat);
if ( $Aantal == 0) {
echo"Het Gekozen nieuwsbericht is niet gevonden.";
}
else
{
while($Rij = mysqli_fetch_assoc ($Resultaat))
{
?>
<h2><?php echo $Rij['titel']?></h2> <small> <?php echo $Rij['username']?> | <?php echo longdate($Rij['postdate'])?> | <?php echo $Rij['posttime']?></small> <?php echo $Rij['description'];
}
}
?>
$Query = "SELECT c.titel, c.postedby, c.postdate, c.posttime, c.description, u.username, u.id FROM content AS c LEFT JOIN user AS u ON u.id = c.postedby WHERE u.id = ".(int)$_GET['id']." ORDER BY u.id DESC";
//$Query = "SELECT * FROM content ORDER BY id DESC";
$Resultaat = mysqli_query($Connect, $Query);
$Aantal = mysqli_num_rows($Resultaat);
if ( $Aantal == 0) {
echo"Het Gekozen nieuwsbericht is niet gevonden.";
}
else
{
while($Rij = mysqli_fetch_assoc ($Resultaat))
{
?>
<h2><?php echo $Rij['titel']?></h2> <small> <?php echo $Rij['username']?> | <?php echo longdate($Rij['postdate'])?> | <?php echo $Rij['posttime']?></small> <?php echo $Rij['description'];
}
}
?>




