[SQL/PHP] SUM blijft '0' geven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Hallo,

Ik wil van een tabel allen punten bij elkaar optellen, gegroepeerd bij de gebruiker.
Echter krijg ik steeds bij de variabele " $punten1 " de waarde " 0 " terug. Wanneer ik dezelfde query via phpmyadmin op de database los laat, krijg ik wél de gewenste resultaten!

Want doe ik verkeerd????
Ik heb al op verschillende forums/zoekmachines gezocht naar een mogelijke oplossing maar ben er gewoon nog niet achter gekomen :/
Misschien is het iets simpels, maar ik kan er gewoon niet achter komen. Ik hoop dat jullie me kunnen helpen.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$sql = "SELECT SUM(punten) as points, user_id 
          FROM voorspelling
          GROUP BY user_id";        
   
$query = mysql_query($sql) or die('Oeps, er ging iets fout!');  
while ($obj = mysql_fetch_assoc($query)) 
 { 
  $punten1 = $obj['points'];
  $userid = $obj['user_id'];
     
  echo "userid: ".$userid."<br>aantal punten: ".$punten1;
  echo "<br><br>";
}

// het volgende heb ik ook geprobeerd!
while ($obj = mysql_fetch_object($query))
{ 
  $punten1 = $obj->points;
  $userid = $obj->user_id;
     
  echo "userid: ".$userid."<br>aantal punten: ".$punten1;
  echo "<br><br>";
}


Beide geven dus bij $punten1 de waarde " 0 " weer. De variabele $userid wordt WEL correct weergegeven!

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 09:17
Raar. Doe eens:
PHP:
1
print_r($obj);

[ Voor 5% gewijzigd door Thralas op 10-05-2006 17:40 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zijn die punten-velden in je tabel niet gewoon 0 ?

Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
code:
1
print_r($obj);

Dit geeft ook gewoon "0" bij punten weer.

edit: " [points] => 0 [user_id] => 8 " geeft hij weer
Zijn die punten-velden in je tabel niet gewoon 0 ?
Hier heb ik hetvolgende over gezegd..
Wanneer ik dezelfde query via phpmyadmin op de database los laat, krijg ik wél de gewenste resultaten!
Dus gewoon de optelling van de punten per user_id

[ Voor 10% gewijzigd door Theske op 10-05-2006 17:58 ]

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • Mr. Bondt
  • Registratie: Februari 2005
  • Laatst online: 10-06 10:11
Wat als je nou dit doet:
PHP:
1
2
3
4
5
while (list($punten1, $userid) = mysql_fetch_row($query)) 
{ 
  echo "userid: ".$userid."<br>aantal punten: ".$punten1;
  echo "<br><br>";
}


Je kan ook dit nog proberen:
PHP:
1
2
3
4
5
6
7
8
while ($obj = mysql_fetch_assoc($query)) 
{ 
  $punten1 = $obj['punten'];
  $userid = $obj['user_id'];
     
  echo "userid: ".$userid."<br>aantal punten: ".$punten1;
  echo "<br><br>";
}


Enige wat ik me kan voorstellen is dat er iets fout gaat met die alias.
Moet eerlijk bekennen dat ik nog nooit wat met aliassen gedaan heb.

[ Voor 110% gewijzigd door Mr. Bondt op 10-05-2006 18:57 ]


Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Werkt allebei niet :/

Bij je eerste mogelijkheid krijg ik dezelfde output: de user_id's met aantal punten = "0"

Bij de tweede mogelijkheid krijg ik bij punten helemaal niks, gewoon leeg dus.

Even tot de goede orde:
dit krijg ik dus via phpmyadmin te zien!! :
code:
1
2
3
4
5
6
7
8
9
10
11
points user_id
7   8
7   13
9   16
0   19
0   22
0   23
0   26
2   27
8   30
3   32

met de volgende query:
SQL:
1
2
3
4
SELECT SUM( punten ) AS points, user_id
FROM voorspelling
GROUP BY user_id
LIMIT 0 , 30

Dit verwacht ik dus ook te krijgen via php

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • Mr. Bondt
  • Registratie: Februari 2005
  • Laatst online: 10-06 10:11
Krijg je maar één resultaat via php of krijg je er meer?

Ik heb een vergelijkbare code op mijn database losgelaten (in dezelfde stijl als jouw query) maar bij mij doet hij het gewoon.

[ Voor 54% gewijzigd door Mr. Bondt op 10-05-2006 19:26 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Theske schreef op woensdag 10 mei 2006 @ 19:07:
Dit verwacht ik dus ook te krijgen via php
Nou, het is vrij simpel. Voor zover ik en de medegebruikers hier kunnen zien is deze specifieke code ook niet fout. Ik vraag me dan ook af of dit alle code is die je uitvoert, of dat dit een aangepast/ingekort voorbeeld is voor hier?

Acties:
  • 0 Henk 'm!

Anoniem: 26569

Ik neem aan dat de while loop er voor zorgt dat ie alle records uit de query laat zien. Of gebruik je in je script ook nog een limit in de SQL-Query.

Ik ben niet bekend met php en MySQL. Maar als je maar een aantal resultaten laat zien en hij ordered op basis van aantal punten, dan is het niet zo gek dat je eerst alleen maar 0 ziet.

Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Via PHP krijg ik gewoon de hoeveelheid resultaten als ik verwacht. Er zijn in de tabel 'voorspelling' 10 verschillende user_id's die hij dus netjes groepeerd. Ik krijg 10 resultaten met daarin dus de user_id en de hoeveelheid punten (die steeds "0" aangeeft, wat dus verkeerd is).

Mijn "gehele" code (exclusief de onzin van de body e.d.)
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
27
28
29
30
31
32
<?
if ($_POST['submit'])  //Als er op de button is geklikt
{  

     $sql = "SELECT SUM(punten) as points, user_id FROM voorspelling
             GROUP BY user_id";   
               
     $query = mysql_query($sql) or die('Oeps, er ging iets fout!');  

         
     while ($obj1 = mysql_fetch_assoc($query)) 
     { 
     $punten1 = $obj1['points'];
     $userid = $obj1['user_id'];
     
     echo "userid: ".$userid."<br>aantal punten: ".$punten1;
     echo "<br><br>";
     }
?>
<a href="">Terug</a>
<?   
}
else  //Als er geen uitslag is toegevoegd
{  
?>
<form name="update_stand" action="" method="post">
<input type="submit" value="Update de stand!" name="submit">
</form>
     
<?
} 
?>

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Anoniem: 26569 schreef op woensdag 10 mei 2006 @ 19:38:
Ik neem aan dat de while loop er voor zorgt dat ie alle records uit de query laat zien. Of gebruik je in je script ook nog een limit in de SQL-Query.

Ik ben niet bekend met php en MySQL. Maar als je maar een aantal resultaten laat zien en hij ordered op basis van aantal punten, dan is het niet zo gek dat je eerst alleen maar 0 ziet.
Geen limits
Dit is de output:::
code:
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
27
28
29
userid: 8
aantal punten: 0

userid: 13
aantal punten: 0

userid: 16
aantal punten: 0

userid: 19
aantal punten: 0

userid: 22
aantal punten: 0

userid: 23
aantal punten: 0

userid: 26
aantal punten: 0

userid: 27
aantal punten: 0

userid: 30
aantal punten: 0

userid: 32
aantal punten: 0

Aantal punten is niet 0, bij sommige wel , bij sommige niet.... er klopt dus ergens op een of andere manier niet :/ Maar wat :?

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Nu online

LauPro

Prof Mierenneuke®

Niet perongelijk geconnect op een andere database, dat heeft mij vandaag nog ruim een half uur gekost voordat ik door had waarom mijn SELECT-query zo weinig resultaten gaf :O .

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Damn!

You're Great! :P
Ik had twee verschillende bestande geinclude, dit is immers een test pagina voor een nieuwe functie. In de ene had ik een connectie met de goede (test) database, maar in de andere (die als tweede geincluud was) werd er geconnect met de orginele (al in gebruik genomen) database.

Het was inderdaad een klein dingetje waar je niet altijd aan denkt.
Bedankt in ieder geval allemaal voor de hulp en moeite! _/-\o_
Bedank!

Groeten,
Thijs

Proud member of the Cosmic Cows


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Nu online

LauPro

Prof Mierenneuke®

:*)

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!

Pagina: 1