login  Naam:   Wachtwoord: 
Registreer je!
 Forum

count query (Opgelost)

Offline Stefan14 - 13/06/2007 15:34
Avatar van Stefan14PHP gevorderde Ik wil graag controleren of iemand al meegedaan heeft, dit doe ik op de volgende manier:
  1. <?php
  2. $query = "SELECT COUNT(*) FROM puzzeldeelnemers WHERE username = '".$_SESSION['username']."'";
  3. $result = mysql_query($query) or die (mysql_error());
  4. if (mysql_num_rows($result) != 0)
  5. {
  6. echo('U heeft deze maand al meegedaan met deze puzzel!');
  7. echo(mysql_num_rows($result));
  8. }
  9. else
  10. {
  11. echo('<input type="submit" name="submit" value="Insturen">');
  12. }
  13. ?>


Nu is die tabel leeg, maar toch geeft de query 1 als uitkomst? hoe kan dit?

5 antwoorden

Gesponsorde links
Offline marten - 13/06/2007 15:38 (laatste wijziging 13/06/2007 15:39)
Avatar van marten Beheerder Een count levert altijd resultaat op. Ook al zijn er geen resultaten 

je krijgt dan namelijk 0 terug dus 1 resultaat.

je kan beter een veldnaam daar gebruiken (primary key)
  1. <?php
  2. $query = "SELECT veldnaam FROM puzzeldeelnemers WHERE username = '".$_SESSION['username']."'";
  3. $result = mysql_query($query) or die (mysql_error());
  4. if (mysql_num_rows($result) != 0)
  5. {
  6. echo('U heeft deze maand al meegedaan met deze puzzel!');
  7. echo(mysql_num_rows($result));
  8. }
  9. else
  10. {
  11. echo('<input type="submit" name="submit" value="Insturen">');
  12. }
  13. ?>
Offline Mad_Mike - 13/06/2007 15:40
Avatar van Mad_Mike PHP beginner Het resultaat van deze query (wanneer je tabel leeg is) zal de waarde 0 bevatten. Want je haalt inmmer het aantal keer op dat deze deelnemer heeft meegedaan.

Maar in je if-statement ga je het aantal resultaten van je query vergelijken met 0. MAAR het aantal resultaten is altijd 1 wanneer je COUNT gebruikt (toch?). Het resultaat bevat namelijk een waarde die het aantal keren bevat dat de deelnemer heeft mee gedaan.

Dus je moet het resultaat van de query vergelijken met 0, en niet het AANTAL resultaten 

snap je me?
Offline Stefan14 - 13/06/2007 15:45
Avatar van Stefan14 PHP gevorderde ik heb de COUNT(*) nu een alias gegeven en daarop gecontroleerd, dat doe ik normaal ook, maar ben ik nu in de haast vergeten. Nu werkt het.
Offline Mad_Mike - 13/06/2007 15:47
Avatar van Mad_Mike PHP beginner ja dat werkt inderdaad ook.
Maar snap je waarom het eerst niet werkte?
Offline Stefan14 - 13/06/2007 15:58
Avatar van Stefan14 PHP gevorderde @Mad_Mike, ja dat snap ik.:D
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.175s