[PHP/MySQL] Simpele MAX() (lijkt) niet te werken ?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een mooi stats-proggie aan het maken (mooie gd-graphs ;)), waarbij ik de max()-waarde van een kolom moet weten... Opzich geen probleem: MAX() will do it :)

No way dus:
code:
1
SELECT MAX(home) FROM stats
geeft gewoon een willekeurige waarde (die er wel instaat), maar dus niet de max. waarde :( Wat doe ik fout? t Zal vast wel iets stoms zijn, maar ik zie het niet (en 3 uur geleden ook al niet :( )

Acties:
  • 0 Henk 'm!

  • Bjorker
  • Registratie: September 2000
  • Laatst online: 12:33

Bjorker

Cadillacs rule!

Zo te zien doe je niets fout. Dit zou toch echt moeten werken.
Krijg je bij elke query telkens een andere waarde terug?

Post anders even een relevant stuk van je php code.

Nope


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee, elke keer dezelfde waarde :(

PHP:
1
2
list($waarde)   = $dbClass->dbFetchArray($dbClass->dbQuery("SELECT MAX(home) FROM stats
WHERE timestamp BETWEEN '".$dag['begin']."' AND '".$dag['eind']."'"));
En ja, hij heeft verbinding en dat alles :P

En $dag['begin'] en $dag['eind'] zijn ook gedefinieerd :P

[ Voor 47% gewijzigd door Verwijderd op 04-01-2003 02:01 . Reden: layout ]


Acties:
  • 0 Henk 'm!

  • Bjorker
  • Registratie: September 2000
  • Laatst online: 12:33

Bjorker

Cadillacs rule!

Verwijderd schreef op 04 January 2003 @ 02:00:
En $dag['begin'] en $dag['eind'] zijn ook gedefinieerd :P
Weet je zeker dat daar de juiste waarde uitkomt zoals die in je timestamp kolom staan?
Doe het voor de gein eens zonder de where.

[ Voor 12% gewijzigd door Bjorker op 04-01-2003 02:28 ]

Nope


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bjorker schreef op 04 januari 2003 @ 02:27:
[...]

Weet je zeker dat daar de juiste waarde uitkomt zoals die in je timestamp kolom staan?
Doe het voor de gein eens zonder de where.
Ja, waardes kloppen... Kan het te maken hebben dat ik 'timestamp' en 'home' aan een index heb toegevoegd ?

[ Voor 8% gewijzigd door Verwijderd op 04-01-2003 11:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

het zou ook nog kunnen dat timestamp een reserved word is... en dat je daarom `timestamp` moet gebruiken (dus met backticks, GEEN quotes)

ed. denk dat dat het idd is, het is iig reserved,
heb de query in phpmyadmin uitgevoerd en timestamp wordt hoofdletters en oranje .... :D

[ Voor 36% gewijzigd door Verwijderd op 04-01-2003 17:55 . Reden: hmm ]


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

timestamp is om aan te geven wanneer een record is toegevoegd, gebruikelijke woorden die je in enige taal hebt zou je NOOIT moeten gebruiken als kolom naam. Een van de redenen waarom ik altijd een 3 letterige voorvoegsel heb voor de tabellen die ik maak, en ook de kolomnaam begin waaraan je al aan het kolomnaam kunt zien uit welke tabel het komt. Over het algemeen maakt dat het lezen van queries ook aangenamer, Vooral als de queries erg groot worden, maar ook als iemand anders naar jouw queries moet gaan kijken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
uhm, dus de kolom timestamp is fout ? Hmm, dan kan ik heel wat scripts gaan aanpassen :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nope, heeft geen verschil... Als ik nou gewoon
code:
1
SELECT MAX(home) FROM stats
uitvoer, krijg ik ''6' terug (laatste row, laagste waarde), terwijl dat '52' moest zijn :(

Acties:
  • 0 Henk 'm!

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 20-08 20:35
Zijn je waarden wel als getallen opgeslagen, of zeg ik nu iets doms :)

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Nog een idee, doe eens een gewone select:
SQL:
1
2
SELECT home FROM stats 
WHERE timestamp BETWEEN '".$dag['begin']."' AND '".$dag['eind']."' ORDER DESC

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01 11:31
M4rt1nvW schreef op 05 januari 2003 @ 11:12:
Zijn je waarden wel als getallen opgeslagen, of zeg ik nu iets doms :)
nope, string '6' is groter dan string '52', het veldtype staat dus waarschijnlijk op varchar ipv. int.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah!!! STom stom stom!! Idd, dat was em :P Hij stond op varchar ipv. int :P Thx :D
Pagina: 1