DESC en ASC? Getal fout?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Grongere Onbekend

Grongere Onbekend

16/02/2009 21:55:00
Quote Anchor link
Ik heb een probleem, ik heb allenmaal verschillende waardes.
van: -4.2 of 3.0 graden enz. alleen wat het probleem is,
Als ik probeer het laagste getal te pakken , dan pakt hij 0.0 graden :O en niet -4.2

Heeft iemand een iedee hoe ik dit kan aanpassen?
Ik heb een iedee dat het aan de database structuur ligt, Kan iemand mij misschien verder helpen?
Dit is nu de tabel die ik nu gebruik:

CREATE TABLE `weer` (
`id` int(150) NOT NULL auto_increment,
`graden` text collate latin1_general_ci,
`plaats` text collate latin1_general_ci,
`windkracht` text collate latin1_general_ci,
`windsnelheid` text collate latin1_general_ci,
`datum` text collate latin1_general_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=0 ;


Heel erg bedankt alvast.

Groetjes, Grongere
 
PHP hulp

PHP hulp

27/04/2024 01:22:27
 
Jesper Diovo

Jesper Diovo

16/02/2009 21:58:00
 
Ki ma

ki ma

16/02/2009 22:00:00
Quote Anchor link
mischien als je er 0.42 van maakt ipv -4.2 want de - herkent hij waarschijnlijk niet.

En wanneer je het zou laten zien zou je met php altijd nog -4.2 van kunnen maken.
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:03:00
Quote Anchor link
Het is wel mogelijk, alleen ik weet niet of je ook in de - kunt gaan bij Php?
 
Frank -

Frank -

16/02/2009 22:04:00
Quote Anchor link
Quote:
`windkracht` text collate latin1_general_ci,
`windsnelheid` text collate latin1_general_ci,
`datum` text collate latin1_general_ci,[/quote
Wat ben je hier van plan? Windkracht "pannekoek"? En windsnelheid "hamburger"? En wacht je van datum "Frankrijk" ? Dit zijn volgens jouw datamodel allemaal geldige waardes, jij wilt tenslotte text opslaan.

Geen wonder dat het dan fout gaat. Kies de JUISTE datatypes en jouw problemen verdwijnen als sneeuw voor de zon.

@Kima: Sinds wanneer zou een database niet met negatieve getallen kunnen werken?
 
Jesper Diovo

Jesper Diovo

16/02/2009 22:05:00
Quote Anchor link
@Kima: Heb je geen wiskunde op school? Volgens mij is 0.42 toch echt een heel ander getal dan -4.2.

Ik zal dan toch maar even moeite doen om het uit te leggen. Je veldtypes zijn helemaal fout. Een getal moet als een inttype aangegeven worden (BIGINT, INT, TINYINT, etc.). Een string moet met CHAR of VARCHAR aangegeven worden en een datum met DATETIME of DATE. Pas als je veldtypes goed staan, kun je optimaal gebruik maken van SQL.
 
Pieter Jansen

Pieter Jansen

16/02/2009 22:06:00
Quote Anchor link
ik had het zelfde probleem. Je veld type ( datatype ) is nu text.. Hierdoor leest ie het niet goed uit. Maar er eens INT van of, nee je hebt komma`s dus je moet er waarschijnlijk DOUBLES van maken. Hierdoor kun je het wel opslaan.
 
Frank -

Frank -

16/02/2009 22:13:00
Quote Anchor link
Geen doubles, gebruik een DECIMAL voor een getal met decimalen. Een double is geen exact getal, het is een benadering van een getal. Wanneer je daarmee gaat rekenen, kun je bijzondere resultaten krijgen.
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:13:00
Quote Anchor link
Ik kom er nog niet helemaal uit.
Want als ik het met int doe, als ik bijv. -1.1 invoer, rond hij af op -2? Hoe kan dat?

En doubles geeft een error
wil je misschien die tabel maken zodat het wel werkt?

CREATE TABLE `weer` (
`id` int(150) NOT NULL auto_increment,
`graden` text collate latin1_general_ci,
`plaats` text collate latin1_general_ci,
`windkracht` text collate latin1_general_ci,
`windsnelheid` text collate latin1_general_ci,
`datum` text collate latin1_general_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=0 ;

id , graden , plaats, windkracht, windsnelheid en datum moet er inzitten.
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:15:00
Quote Anchor link
pgFrank schreef op 16.02.2009 22:13:
Geen doubles, gebruik een DECIMAL voor een getal met decimalen. Een double is geen exact getal, het is een benadering van een getal. Wanneer je daarmee gaat rekenen, kun je bijzondere resultaten krijgen.


Bij Decimal , pakt hij het ook niet goed, Want dan rond hij telkens af op 1 getal
 
Jesper Diovo

Jesper Diovo

16/02/2009 22:16:00
Quote Anchor link
Grongere schreef op 16.02.2009 22:13:
Ik kom er nog niet helemaal uit.
Want als ik het met int doe, als ik bijv. -1.1 invoer, rond hij af op -2? Hoe kan dat?

En doubles geeft een error
wil je misschien die tabel maken zodat het wel werkt?

CREATE TABLE `weer` (
`id` int(150) NOT NULL auto_increment,
`graden` text collate latin1_general_ci,
`plaats` text collate latin1_general_ci,
`windkracht` text collate latin1_general_ci,
`windsnelheid` text collate latin1_general_ci,
`datum` text collate latin1_general_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=0 ;

id , graden , plaats, windkracht, windsnelheid en datum moet er inzitten.


Jezpur:
Ik zal dan toch maar even moeite doen om het uit te leggen. Je veldtypes zijn helemaal fout. Een getal moet als een inttype aangegeven worden (BIGINT, INT, TINYINT, etc.). Een string moet met CHAR of VARCHAR aangegeven worden en een datum met DATETIME of DATE. Pas als je veldtypes goed staan, kun je optimaal gebruik maken van SQL.


pgFrank:
Geen doubles, gebruik een DECIMAL voor een getal met decimalen. Een double is geen exact getal, het is een benadering van een getal. Wanneer je daarmee gaat rekenen, kun je bijzondere resultaten krijgen.
 
Frank -

Frank -

16/02/2009 22:18:00
Quote Anchor link
En waar is dan jouw DECIMAL? Ik zie nergens een DECIMAL, zelfs geen foute DECIMAL.

DECIMAL(4,2)

4 cijfers waarvan 2 decimalen. Wat heb jij er van gemaakt?

TEXT, CHAR en VARCHAR gebruik je alleen wanneer er geen betere datatypes zijn en die zijn er vrijwel altijd. In jouw tabelletje mag je alle kolommen met TEXT gaan omzetten naar betere datatypes, TEXT slaat hier echt nergens op. De kolom "plaats" maak je een VARCHAR van en de rest geef je passende datatypes.

Ps. Onthou het woord "pannekoek" en vul deze eens in. Bevat jouw tabel dan nog bruikbare data? Lijkt me sterk...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:18:00
Quote Anchor link
Waarom rond hij het getal bij Doubles af? en bij int, Decimal enz.
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:21:00
Quote Anchor link
Ik heb het nu zo:

CREATE TABLE weer (
id int(150) NOT NULL auto_increment,
graden decimal collate latin1_general_ci,
plaats varchar collate latin1_general_ci,
windkracht int collate latin1_general_ci,
windsnelheid int collate latin1_general_ci,
datum datetime collate latin1_general_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=0 ;

Klopt dit wel?
 
Frank -

Frank -

16/02/2009 22:22:00
Quote Anchor link
Grongere schreef op 16.02.2009 22:18:
Waarom rond hij het getal bij Doubles af? en bij int, Decimal enz.
Hij rondt niks af, jij maakt een fout en wil deze niet laten zien. Hoe denk je dat wij jou nu kunnen helpen???

En heb je al eens in de handleiding gekeken hoe je nu het juiste datatype moet aanmaken?
 
Frank -

Frank -

16/02/2009 22:23:00
Quote Anchor link
Quote:
graden decimal collate latin1_general_ci,

Zie mijn reactie van 16.02.2009 22:18, daar staat de oplossing al.

Voortaan zelf even in de handleiding kijken, daar staat dit allemaal in.

Edit:
id int(150) NOT NULL auto_increment,
Die INT is ook weer een bijzonder datatype, 150, wat moet dat voorstellen? Je hebt een INT en een INT, maar een INT(150) ?
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:23:00
Quote Anchor link
Sorry hoor. Ik ben niet goed in php, en heb het nog niet doorgelezen.
 
Frank -

Frank -

16/02/2009 22:26:00
Quote Anchor link
Grongere schreef op 16.02.2009 22:23:
Sorry hoor. Ik ben niet goed in php, en heb het nog niet doorgelezen.
Komt goed uit, dit heeft ook helemaal niets met PHP te maken.

SQL is compleet wat anders dan PHP, heeft er niets mee te maken.
 
Grongere Onbekend

Grongere Onbekend

16/02/2009 22:26:00
Quote Anchor link
:P dat bedoel ik niet xd Nouwja verkeerd getypt :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.