2 tabellen query
ik heb 2 tabellen,
group en users
in group moet ik uit het veld id alle id's hebben, die in de record groepsnr 327
bevatten
in tabel users wil ik het email, naam en id nr hebben waarvan het id nr hetzelfde is als uit de tabel group
ik heb het dus zo geprobeerd,
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
include "connect.php"
$query = mysql_query("SELECT user_id, username, user_email FROM users, user_group WHERE user_id = user_id AND group_id = 327");
if( ! $Res = @ mysql_query( $Sql ) )
die( 'Query mislukt!' );
?>
include "connect.php"
$query = mysql_query("SELECT user_id, username, user_email FROM users, user_group WHERE user_id = user_id AND group_id = 327");
if( ! $Res = @ mysql_query( $Sql ) )
die( 'Query mislukt!' );
?>
met verschillend varianten heb ik het dus op die manier zelf willen doen,
maar telkens "Query mislukt!"
waar en wat doe ik fout?
met dank
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
include "connect.php"
$query = mysql_query("SELECT user_id, username, user_email FROM users, user_group WHERE user_id = user_id AND group_id = 327");
if( ! $Res = @ mysql_query( $query ) )
die( 'Query mislukt!' );
?>
include "connect.php"
$query = mysql_query("SELECT user_id, username, user_email FROM users, user_group WHERE user_id = user_id AND group_id = 327");
if( ! $Res = @ mysql_query( $query ) )
die( 'Query mislukt!' );
?>
Deze zal wel lukken denk k
- $query is geen query maar een resultset. $result is dus een betere naam
- Waarom de query uitvoeren en vervolgens het resultaat als query nog eens uitvoeren? Dat gaat natuurlijk fout. Je hebt slechts 1 query en dus is er ook maar 1 query die je kunt uitvoeren.
- Met een @ onderdruk je foutmeldingen. Hoe wil je dan gaan debuggen?
- 'Query mislukt' zegt niets over het probleem, daar heb je niets aan. Gebruik mysql_error() om de echte foutmelding te achterhalen.
Dan het probleem:
Wanneer je gegevens uit 2 tabellen wilt halen, zul je per kolom moeten aangeven uit welke tabel deze moet komen.
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
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
<?php
include "connect.php"
$query = "
SELECT
u.user_id,
u.username,
u.user_email
FROM
users AS u,
user_group AS ug
WHERE
u.user_id = ug.user_id
AND
ug.group_id = 327";
$result = mysql_query($query);
if($result){
while($row = mysql_fetch_assoc($result){
echo $row['user_id'].$row['username'].$row['user_email'];
}
}
else {
echo 'Query mislukt vanwege: '.mysql_error();
}
?>
include "connect.php"
$query = "
SELECT
u.user_id,
u.username,
u.user_email
FROM
users AS u,
user_group AS ug
WHERE
u.user_id = ug.user_id
AND
ug.group_id = 327";
$result = mysql_query($query);
if($result){
while($row = mysql_fetch_assoc($result){
echo $row['user_id'].$row['username'].$row['user_email'];
}
}
else {
echo 'Query mislukt vanwege: '.mysql_error();
}
?>
Let ook op de aliassen die zijn aangemaakt, dat maakt het een stuk eenvoudiger. Welke gegevens uit welke tabel moeten komen, weet ik niet en heb ik dus maar wat voor ingevuld. Ga er dus maar van uit dat deze query niet werkt, maar de juiste basis heb je nu.
Edit: Kalle bedankt! Query aangepast, alias is nu goed gebruikt.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
dan wel.
mis dus
mijn oprechte dank voor de hulp
ik ga dus aan slag met het bovenstaande
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
$strSQL = "Select * from group
inner join users on
( group.user_id = users.user_id )
where group_id = 327";
$result = mysql_query($strSQL);
while ($rs = mysql_fetch_assoc($result)){
Doee je shitt:P ( alles is aan te roepen via: $rs[' hier de veld naam '] )
}
?>
$strSQL = "Select * from group
inner join users on
( group.user_id = users.user_id )
where group_id = 327";
$result = mysql_query($strSQL);
while ($rs = mysql_fetch_assoc($result)){
Doee je shitt:P ( alles is aan te roepen via: $rs[' hier de veld naam '] )
}
?>
nick schreef op 11.12.2006 12:26:
De query van Frank bevat ook een inner join. Dit hoef je niet persé te maken met INNER JOIN foo ON bar.Gebruik in de query een inner of outer join, zo kan je in 1 query alle gegevens ophalen.
Elwin