login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[MySQL] Probleem met multiple joins

Offline Sc0tTy - 08/07/2006 15:19 (laatste wijziging 08/07/2006 15:33)
Avatar van Sc0tTyPHP interesse ik heb deze query :
  1. SELECT
  2. newz.id,
  3. newz.post_date,
  4. newz.edit_date,
  5. newz.msg,
  6. COUNT(DISTINCT reaction.newz_id ) AS reaction_count,
  7. users.user
  8. FROM
  9. newz
  10. LEFT JOIN
  11. users
  12. ON
  13. newz.poster_id = users.id
  14. LEFT JOIN
  15. newz_reactions AS reaction
  16. ON
  17. newz.id = reaction.newz_id
  18. GROUP BY
  19. reaction.id
  20. ORDER BY
  21. id DESC
  22. LIMIT 5


Maar ik krijg maar 1 result, terwijl er meerdere items zijn in de tabel newz, dit heb ik nagechecked met php my admin. Er is dus iets mis met deze query maar ik zie niet wat , ziet iemand wat het is ?

5 antwoorden

Gesponsorde links
Offline DenMette - 08/07/2006 15:25
Avatar van DenMette PHP gevorderde je hebt het toch in een while loop gezet dan als je het wilt weergeven??
Offline Sc0tTy - 08/07/2006 15:30 (laatste wijziging 08/07/2006 15:56)
Avatar van Sc0tTy PHP interesse jup :

  1. if ( mysql_num_rows( $query ) != 0 ) {
  2.  
  3. // Go through result
  4. while ( $result = mysql_fetch_object( $query ) ) {
  5. print_r( $result );


dit is de output van de print_r :
  1. stdClass Object
  2. (
  3. [id] => 1
  4. [post_date] => 1152300851
  5. [edit_date] =>
  6. [msg] => asdf;lkjasd f;lkjasdf
  7. asdfa;lskdjf as
  8. dfasdfasdf
  9. [reaction_count] => 0
  10. [user] => Sc0tTy
  11. )


hij doet het dus 1x goed en daarna niet meer

EDIT :
ik zie nu dat het de GROUP BY is wanneer ik de count en GROUP BY weg haal doet hij het wel goed, nu nog iets te vinden om alle id's alsnog op te tellen
Offline CDNC - 08/07/2006 18:26
Avatar van CDNC PHP ver gevorderde mysql_num_rows() ?
Offline Ibrahim - 08/07/2006 18:33
Avatar van Ibrahim PHP expert Je zou een tweede query kunnen uitvoeren:

  1. <?php
  2. $countQuery = mysql_query("SELECT COUNT(id) FROM tabel") or die('Error while counting rows: <br />'. mysql_error());
  3.  
  4. $fetchCount = mysql_result($countQuery, 0); // hier zit dan het aantal opgeslagen..
  5. ?>
Offline Sc0tTy - 11/07/2006 15:24
Avatar van Sc0tTy PHP interesse sorry dat ik zo laat reageer, ik wat hier boven staat had ik dus al gedaan ;) alleen dan als subquery het is er zo uit te komen zien ::

  1. SELECT
  2. newz.id,
  3. newz.post_date,
  4. newz.edit_date,
  5. newz.msg,
  6. users.user,
  7. (
  8. SELECT
  9. COUNT(id)
  10. FROM
  11. newz_reactions
  12. WHERE newz_id = newz.id
  13. ) AS reaction_count
  14. FROM
  15. newz AS newz
  16. LEFT JOIN
  17. users AS users ON users.id = newz.poster_id
  18. ORDER BY
  19. id DESC
  20. LIMIT 5


ik weet niet of het een bug is of niet maar je kan dus geen GROUP BY doen wanneer je meerdere tabellen joined 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.29s