login  Naam:   Wachtwoord: 
Registreer je!
 Forum

WHERE som (Opgelost)

Offline ArcanA - 29/03/2009 01:16 (laatste wijziging 29/03/2009 01:17)
Avatar van ArcanAPHP beginner Hallo,

Heb al zitten zoeken enzo maar kan iemand me uitleggen hoe ik het volgende doe:

Stel dat ik 2velden in mijn database heb, won en lost.
Deze wil ik optellen in mijn query, hoe doe ik dit?
De query mag enkel uitgevoerd worden als het in totaal een waarde van 5 heeft.

$sQuery = "SELECT * FROM users WHERE ...";


Mvg,
Niels

12 antwoorden

Gesponsorde links
Offline Stefan14 - 29/03/2009 08:03
Avatar van Stefan14 PHP gevorderde Ik denk met een subquery, iets als:

  1. <?php
  2. $query = "SELECT * FROM users WHERE (SELECT won+lost AS totaal FROM users) = 5";
  3. ?>
Offline jvs - 29/03/2009 10:50
Avatar van jvs HTML beginner
  1. SELECT (won + lost) AS total FROM users WHERE total = 5
Offline Rik - 29/03/2009 11:15
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
@jvs,
Dat zal niet werken omdat tijdens het controleren op total=5, de kolom total nog niet bestaat. Hierover zal je dan ook een foutmelding krijgen "ERROR 1054 : Unknown column 'total' in 'where clause'". Als je HAVING gebruikt ipv WHERE werkt het wel omdat de voorwaarde dan pas achteraf wordt toegepast.
Offline jvs - 29/03/2009 12:05
Avatar van jvs HTML beginner @boukefalos: Je hebt inderdaad gelijk! Ik vergis me steeds tussen beide excuses! Als je die total dan vervangt door (won+lost) = 5 dan moet het toch wel lukken ofniet?
Offline Rik - 29/03/2009 12:42
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ja het kan inderdaad op twee manieren dan:
  1. SELECT (won + lost) AS total FROM users WHERE (won + lost) = 5
of
  1. SELECT (won + lost) AS total FROM users HAVING total = 5
Je moet maar even kijken welke in jouw geval sneller is.
Offline ibmos2warp - 29/03/2009 14:48 (laatste wijziging 29/03/2009 14:49)
Avatar van ibmos2warp PHP interesse
Boukefalos schreef:
Ja het kan inderdaad op twee manieren dan:[..code..]of[..code..]Je moet maar even kijken welke in jouw geval sneller is.

Ik denk dat het het volgende is:
  1. SELECT naam, id, whatever FROM users WHERE (won + lost) = 5

en:
  1. SELECT naam, id, whatever, (won + lost) AS total FROM users HAVING total = 5

is, omdat anders in gewoon Nederlands het volgende doet: "selecteer de kolommen win+verlies als totaal van de tabel gebruikers waar win+verlies gelijk is aan 5".
Dus dan doe je 5 selecteren.
Offline ArcanA - 29/03/2009 16:16 (laatste wijziging 29/03/2009 16:17)
Avatar van ArcanA PHP beginner Als ik 1resultaat heb, word hij weergeven, als ik er 2heb, waarvan de lost en de won ook een totale waarde van 5 hebben.. Komt er te staan dat er op dit moment niemand in de ranglijst staat.

  1. <?php
  2. $sQuery = "SELECT * FROM wed_winnaars WHERE (SELECT won+lost AS totaal FROM wed_winnaars) = 5";
  3. $sResult = mysql_query($sQuery);
  4. $tel = mysql_num_rows($sResult);
  5.  
  6. if ($tel == 0) {
  7. echo '<tr><td><p><b>Er zijn op dit moment geen wedstrijden.</b></p></td></tr>';
  8. }
  9. else {
  10.  
  11. $j = 0;
  12.  
  13. while ($a = mysql_fetch_assoc($sResult)) {
  14.  
  15. $totaal = $a['won'] + $a['lost'];
  16. $procent = 100/$totaal*$a['won'];
  17. $aProcent = round($procent);
  18. $j = $j + 1;
  19. echo '
  20. <tr>
  21. <td>'.$j.'</td>
  22. <td>'.$a['naam'].'</td>
  23. <td>'.$totaal.'</td>
  24. <td>'.$a['won'].'</td>
  25. <td>'.$a['lost'].'</td>
  26. <td>'.$aProcent.'</td>
  27. </tr>
  28. ';
  29. }
  30. }
  31. ?>
Offline jvs - 29/03/2009 16:28
Avatar van jvs HTML beginner Je query is fout gebruik die van mij of Boukefalos
Offline ibmos2warp - 29/03/2009 16:31
Avatar van ibmos2warp PHP interesse
jvs schreef:
Je query is fout gebruik die van mij of Boukefalos

Mag ik jou dan ook nog even op mijn post wijzen?
Offline jvs - 29/03/2009 16:35
Avatar van jvs HTML beginner
ibmos2warp schreef:
[..quote..]
Mag ik jou dan ook nog even op mijn post wijzen?


mag ik vragen wat er aan jou post anders is als die van Boukefalos?
Offline ArcanA - 29/03/2009 16:36
Avatar van ArcanA PHP beginner @ ibmos2warp:

Ahja, bedankt.. de jouwe werkt
Offline ibmos2warp - 29/03/2009 16:39
Avatar van ibmos2warp PHP interesse
jvs schreef:
[..quote..]

mag ik vragen wat er aan jou post anders is als die van Boukefalos?

Jullie selecteren vijf, zoals je in mijn "Nederlandse verhaaltje" kunt lezen. (Of gewoon logisch nadenkt.)
Je moet ook iets anders selecteren...

ArcanA schreef:
@ ibmos2warp:

Ahja, bedankt.. de jouwe werkt

Geen dank :-)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s