SQL foutje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Tim Kampherbeek

Tim Kampherbeek

08/02/2011 14:29:40
Quote Anchor link
Hoi allemaal

Ik stuit net op een hele rare fout, het kan ook gewoon zijn dat ik gewoon te gestresst ben en het door de drukte in mijn hoofd niet zie, maarja hier komt het

als ik een query uitvoer die kijkt naar:
Formaat: a4
aantal: 10000

vind die gewoon netjes een row
maar nu wou ik graag dat als de aantal niet voorkomt dat hij de eerste de beste erboven pakt, hier als voorbeeld als er 9900 ingevoerd word hij dus 10.000 pakt. maar ik krijg 99000 terug. heel raar dus.

Dit is de query

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT `aantal`, `4werkdagen` FROM `prijs`
            WHERE
                `aantal` >= '9900' &&
                `formaat` = 'A4' ORDER BY `aantal` ASC LIMIT 1


Misschien zien jullie wat ik fout doe.

Mvg,

Tim
 
PHP hulp

PHP hulp

24/12/2024 13:14:45
 
Justin S

Justin S

08/02/2011 14:33:39
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT aantal, 4werkdagen FROM prijs WHERE aantal >= "9900" AND formaat = "A4" ORDER BY aantal ASC LIMIT 0,1


- Backticks horen niet in SQL
- && vervangen in SQL door AND
- Enkele quotes vervangen door dubbele
- LIMIT ook een 0 meegeven, het moet liggen tussen 0,1
 
Mebus  Hackintosh

Mebus Hackintosh

08/02/2011 14:35:35
Quote Anchor link
Word && niet ergens anders voor gebruikt in SQL query's? Gebruik inplaats van && eens AND. Verder zijn backticks niet aan te raden in SQL query's.
Gewijzigd op 08/02/2011 14:36:13 door Mebus Hackintosh
 
Tim Kampherbeek

Tim Kampherbeek

08/02/2011 14:36:56
Quote Anchor link
Ok, maar krijg nog steeds hetzelfde resultaat als eerst justin

En als ik gewoon

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT aantal, 4werkdagen FROM prijs WHERE aantal >= "10000" AND formaat = "A4" ORDER BY aantal ASC LIMIT 0,1

doe dan krijg ik ook gewoon het goeie resultaat
Gewijzigd op 08/02/2011 14:38:08 door Tim Kampherbeek
 
- SanThe -

- SanThe -

08/02/2011 14:49:21
Quote Anchor link
Justin S op 08/02/2011 14:33:39:
- Backticks horen niet in SQL
- && vervangen in SQL door AND
- Enkele quotes vervangen door dubbele
- LIMIT ook een 0 meegeven, het moet liggen tussen 0,1


Graag wel correcte antwoorden geven.

- Juist.
- Juist.
- Onjuist.
- Onjuist.
 
Tim Kampherbeek

Tim Kampherbeek

08/02/2011 14:50:30
Quote Anchor link
SanThe jij bent gewoon GENIAAL, dus jij weet vast het antwoord op mijn vraag ook wel? haha
 
TJVB tvb

TJVB tvb

08/02/2011 14:58:09
Quote Anchor link
Simpele vraag, is aantal een getal of tekst?
Zoals jij het invoert is het tekst, en dan kan de sortering wel eens wat raar zijn.
Gewijzigd op 08/02/2011 14:58:45 door TJVB tvb
 
Tim Kampherbeek

Tim Kampherbeek

08/02/2011 14:58:41
Quote Anchor link
getal zoals je ziet
 
TJVB tvb

TJVB tvb

08/02/2011 14:59:26
Quote Anchor link
Waarom vul je het dan in als tekst?
Staat het ook in een veld dat een int is?
 
- SanThe -

- SanThe -

08/02/2011 14:59:42
Quote Anchor link
Begin eens met 4werkdagen een normale naam te geven. Een cijfer als eerste character in een naam is niet correct.
 
Ozzie PHP

Ozzie PHP

08/02/2011 15:02:13
Quote Anchor link
TJVB tvb op 08/02/2011 14:59:26:
Staat het ook in een veld dat een int is?
Dit inderdaad.
 
- SanThe -

- SanThe -

08/02/2011 15:03:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sql
= "SELECT aantal,
                vierwerkdagen
        FROM prijs
        WHERE aantal >= 9900
        AND formaat = 'A4'
        ORDER BY aantal ASC
        LIMIT 1
        "
;
?>
 
Ozzie PHP

Ozzie PHP

08/02/2011 15:06:41
Quote Anchor link
Even uit nieuwsgierigheid... wat zit er eigenlijk voor waarde in die 4werkdagen?
 
TJVB tvb

TJVB tvb

08/02/2011 15:08:58
Quote Anchor link
@SanThe, het gaat dan nog steeds om het datatype van aantal.
Als dat bijvoorbeeld een varchar is zal er niks beginnend met een 1 in voorkomen.
 
Tim Kampherbeek

Tim Kampherbeek

08/02/2011 16:28:02
Quote Anchor link
doet het nu perfect SanThe, probleem waren dus de quotes bij de integer

Thanks!
 

08/02/2011 17:15:50
Quote Anchor link
Ozzie PHP op 08/02/2011 15:06:41:
Even uit nieuwsgierigheid... wat zit er eigenlijk voor waarde in die 4werkdagen?


Inderdaad, dit ruikt naar verkeerd database model.
 
Tim Kampherbeek

Tim Kampherbeek

10/02/2011 20:28:47
Quote Anchor link
Dacht het nu opgelost te hebben maar krijg nog steeds rare resultaten. word er een beetje maf van.

my query
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT aantal, 4werkdagen FROM prijs
            WHERE
                aantal >= 250 AND
                formaat = 'A4' ORDER BY aantal ASC LIMIT 1


in mijn database staat duidelijk een row met 250 als aantal en formaat als a4
Maar toch krijg ik als eerst de row met aantal 10000 terug.

Weet iemand waarom?
 
Thomas de vries

thomas de vries

10/02/2011 20:34:24
Quote Anchor link
hoe laat je de resultaten zien
Want als ik die code in phpmyadmin uitvoer dan krijg ik wel die 250 terug
en niet eerst die 10000
 
Tim Kampherbeek

Tim Kampherbeek

10/02/2011 21:31:58
Quote Anchor link
nou als ik via phpmyadmin uitvoer krijg ik ook 1000 terug

maar als ik neerzet =250 krijg ik wel 250 terug, beetje vaag dus
 
Thomas de vries

thomas de vries

10/02/2011 21:41:43
Quote Anchor link
dan is je database structuur niet goed.
laat de tabel prijs is zien hier.
 
Tim Kampherbeek

Tim Kampherbeek

10/02/2011 22:02:25
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE `prijs` (
  `prijsID` int(12) NOT NULL auto_increment,
  `formaat` varchar(250) NOT NULL,
  `gewicht` varchar(250) NOT NULL,
  `aantal` varchar(250) NOT NULL,
  `4werkdagen` varchar(250) NOT NULL,
  `1werkdag` varchar(250) NOT NULL,
  `2werkdagen` varchar(250) NOT NULL,
  `kortingcoating` varchar(250) NOT NULL,
  `coating` varchar(250) NOT NULL,
  `hoeken` varchar(250) NOT NULL,
  PRIMARY KEY  (`prijsID`)
) ENGINE=MyISAM AUTO_INCREMENT=4399 DEFAULT CHARSET=latin1 AUTO_INCREMENT=4399 ;


Nou welke mongol die heeft opgemaakt spoort ook niet. probleem dus al gevonden Thnx
Gewijzigd op 10/02/2011 22:13:50 door Tim Kampherbeek
 

Pagina: 1 2 volgende »



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.