login  Naam:   Wachtwoord: 
Registreer je!
 Forum

query fout, of wat ?

Offline jeroen_01 - 22/08/2006 14:28
Avatar van jeroen_01Nieuw lid Hey, ik heb een mysql db, moet ik data uithalen en in een excel sheet dumpen. dat werkt wel allemaal alleen heb ik een probleempje hiermee:
ik moet 'R' uit de db halen, en die rankschikken in groepjes.
maar op dit moment, haalt hij het op. en telt hij alle 'R' tussen de 40 en 60 bij het groepje 4-6.... db veld R = varchar.

  1. $i=2;
  2. while($i < 77){
  3. $e = $i - 2;
  4. $query = mysql_query("Select * from topro where jaar='$jaar' and school='$school' and R >= '$e' and R < '$i'");
  5. $r = mysql_num_rows($query);
  6.  
  7. $cart->write($crow,$col,''.$r.'',$topFormat);
  8. $i=+2;
  9. $col++;
  10. }


iemand idee? 

4 antwoorden

Gesponsorde links
Offline Stefan14 - 22/08/2006 14:30 (laatste wijziging 22/08/2006 14:34)
Avatar van Stefan14 PHP gevorderde ik snap je vraag niet helemaal, maar getallen hoor je niet in een varchar te zetten maar in een int (integer)

zie http://www.site...amp;id=131
en leer (de belangrijkste) uit je hoofd.

EDIT: dit geldt overigens ook voor eventuele andere velden, controleer even of die goed zijn, zo ook voor jaar, ik neem aan dat hier steeds 4 cijfers in staan? dit moet dan ook een int zijn.

Je kan er ook een date van maken, maar weet niet of dat nodig is in
jouw situatie.

EDIT: moet er trouwens geen mysql_fetch_xxx of eventueel mysql_result in je code staan?
Offline jeroen_01 - 22/08/2006 14:54 (laatste wijziging 22/08/2006 15:07)
Avatar van jeroen_01 Nieuw lid nee.... en trouwens in de getal kan ook een . staan.
dus 15.5 ofzo... geeft dat geen probleem met int? 

het probleem is dat hij bij de groepjes 0-2 , 2-4, 4-6, 6-8 een fout maakt, door daar 0-20 te tellen, 20 -40 , 40-60 en 60-80...

inplaats van gewoon 0-2 etc... 

als ik deze code gebruik
  1. $query = mysql_query("Select * from topro where jaar='$jaar' and school='$school' and R >= 0 and R < 5");
  2. $r0 = mysql_num_rows($query);

dan doet hij het wel goed, maar ik wil nie alle regels gaan tikken.
Offline Thomas - 22/08/2006 14:57
Avatar van Thomas Moderator Wat staat er in de kolom "R"?

Als de kolom van een text-type is,dan wordt er "lexicografisch" gesorteerd, en niet numeriek.

Text-sortering:
1
10
11
12
...
19
2
20
21
...

Numerieke sortering:
1
2
...
9
10
11
...
19
20
21
...

Dus je resultaten zijn niet zo vreemd...
Offline xSc - 22/08/2006 16:44
Avatar van xSc Onbekend @jeroen_01, je kunt ook gewoon type float gebruiken in je database. Daar kunnen ook hele getallen in staan, maar ook getallen met een .
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s