Mysql select tussen 2 waardes

Pagina: 1
Acties:
  • 191 views

Acties:
  • 0 Henk 'm!

  • Maaark
  • Registratie: Juli 2008
  • Laatst online: 19-09 19:33
Hallo,

Ik heb de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sql = "SELECT `maat` FROM `maten` WHERE `cat`='".$_GET['cat']."' AND `maat` > '".$_GET['maat']."'"; 
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL (1)"); 

$array = array(); 

while($data = mysql_fetch_array($resultaat)){ 
        $array[] = $data['maat']; 
        } 
$nr1 = ($_GET['maat'] - 1); 
$nr2 = ($array[0] + 1); 

                                      $queryselect = mysql_query(" SELECT `id`, `img1`, `name`, `price`, `info`, `img2`, `img3` From `producten` Where `cat`='".$_GET['cat']."' And `maat` = $nr1 And `maat` < $nr2") or die(mysql_error()); 
                                      $maat = $_GET['maat']; 
                                  }

Het is de bedoeling dat ik met $queryselect een aantal dingen ophaal tussen 2 maten in, $nr1 en $nr2. Maar nu krijg ik dus geen resultaat.
Ik heb gegoogled en kwam er de functie BETWEEN tegen, maar weet niet hoe toe te passen.

Kan iemand mij vertellen of dit de oplossing is? En kan iemand mij ook helpen om het toe te passen?

Alvast bedankt,

Mark

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Ik vind in eerste instantie je code kwetsbaar voor een SQL Injectie, ten tweede heb ik een vraag aan je.. Heb je reeds gedebugged wat betreft deze code?

Dus bijvoorbeeld na de while loop eerst een print_r proberen en daaruit naar de resultaten kijken?
PHP:
1
2
3
4
while($data = mysql_fetch_array($resultaat)){ 
        $array[] = $data['maat']; 
} 
print_r($array);


Indien je dit gedaan hebt graag het resultaat posten zodat wij je beter kunnen helpen.

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Je kan niet "maat = $nr1" en kleiner dan nr2 doen. Gebruik voor de eerste 'is' een >= (groter en gelijk aan)

Voor de rest is het een zaak van debuggen. SQL statements testen kun je ook buiten PHP om doen (bv. met Navicat, phpmysqladmin o.i.d.)

[ Voor 38% gewijzigd door Noork op 09-06-2009 14:06 ]


Acties:
  • 0 Henk 'm!

  • EnigmA-X
  • Registratie: Februari 2002
  • Laatst online: 05-09 11:01
Weet je zelf de type van 'maat' ? (int, smallint, varchar, blob?)
Verder stapje voor stapje debuggen, dan kom je er wel.

Om een array uit te lezen, gebruik print_r($array) , eventueel gevolgd door een die() (zodat je scherm schoon is). Voor debug direct in mysql kan ik je webyog community edition aanbevelen (open source).

Acties:
  • 0 Henk 'm!

  • Maaark
  • Registratie: Juli 2008
  • Laatst online: 19-09 19:33
Bedankt allemaal voor jullie hulp, het is mij inmiddels al gelukt!

HEEEEEEEL erg bedankt! _/-\o_

Is er trouwens ook een optie om dit op slot te gooien?

[ Voor 26% gewijzigd door Maaark op 09-06-2009 14:14 . Reden: Vragen of er geen slotje is? ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Maaark schreef op dinsdag 09 juni 2009 @ 14:13:
Is er trouwens ook een optie om dit op slot te gooien?
Voor jou niet, maar ik zal dit wel even dichtgooien. Niet omdat het opgelost is, maar omdat dit topic gewoon niet aan de verwachtingen voldoet die wij aan een topic hebben. Om te beginnen: als je BETWEEN kent, dan is het opzoeken van de syntax toch simpel genoeg? Je wil alles tussen $nr1 en $nr2 (ik zou wat aan die naamgeving doen of met arrays gaan werken overigens). Dat is dan toch niet meer dan WHERE `maat` BETWEEN $nr1 AND $nr2? :? Je hoeft alleen maar de syntax te kennen en je probleem letterlijk uit te schrijven in het Engels. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Nee, topics drijven vanzelf naar beneden. ;)

Zie ook: Het algemeen beleid #topiceinde

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Maaark schreef op dinsdag 09 juni 2009 @ 14:02:
Ik heb gegoogled en kwam er de functie BETWEEN tegen, maar weet niet hoe toe te passen.
MySQL Between -> Comparison Operators (1e hit) -> Uitleg.

Boom shaka!

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.