Dag iedereen, ik moet helaas nogmaals julie hulp vragen
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,

<?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!' );

?>

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
<?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!' );

?>

Deze zal wel lukken denk k
Eerst een paar opmerkingen:
- $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.
<?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();
}
?>
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.
ug.group_id = 327

dan wel.
tja, ik had mijn query zo begrepen uit een boek
mis dus

mijn oprechte dank voor de hulp
ik ga dus aan slag met het bovenstaande
Gebruik in de query een inner of outer join, zo kan je in 1 query alle gegevens ophalen.


<?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 '] )

}

?>
nick schreef op 11.12.2006 12:26
Gebruik in de query een inner of outer join, zo kan je in 1 query alle gegevens ophalen.
De query van Frank bevat ook een inner join. Dit hoef je niet persé te maken met INNER JOIN foo ON bar.

Elwin

Reageren