login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SQL vraagje

Offline thedutchduke - 10/11/2009 20:52
Avatar van thedutchdukeNieuw lid Ik wil graag uit een tabel met artikelnummers de volgende gegevens hebben:

Iedere gebruiker heeft een zoeksleutel, dit kan 1 of twee letters zijn.
Artikelen bestaan uit alle zoeksleutels aangevuld met 2 of 3 cijfers.

Nu wil ik voor iedere gebruiker zijn eigen artikelen eruit halen, dus voor de gebruiker met een zoeksleutel van 1 letter moeten alle artikelen tevoorschijn komen waarvan het tweede karakter een cijfer is. Een gebruikers met een zoeksleutel van 2 letters moet alle artikelen terugkrijgen waarvan het derde karakter een cijfer is.

Het mag dus niet zo zijn dat de gebruiker met een zoeksleutel van 1 letter artikelen ziet van een gebruiker met een zoeksleutel van 2 letters.

Snappen jullie hem?

IK heb het volgende geprobeerd, maar hij geeft een leeg resultaat terug:

SELECT * FROM voorraad WHERE artikelnummer LIKE '$zoeksleutel[0-9]%'

Iemand een idee?

4 antwoorden

Gesponsorde links
Offline jc2 - 10/11/2009 21:53
Avatar van jc2 PHP interesse Probeer dit eens:
  1. $regex="/regex/" // type hier je regex
  2. $query=mysql_query("SELECT * FROM voorraad WHERE artikelnummer LIKE '$zoeksleutel%'");
  3. while($result=mysql_fetch_assoc($query)){
  4. if(preg_match($regex,$result['artikelnummer'])==1){
  5. echo $result['artikel'];
  6. }
  7. else{
  8. }
  9. }


Je haalt zo wel eerst alles op en controleert dan tijdens het ophalen of iets wel of niet aan het regex-patroon voldoet.
Je moet dan uiteraard wel weten om welk type gebruiker het gaat.
Offline thedutchduke - 11/11/2009 09:48
Avatar van thedutchduke Nieuw lid Zoiets heb ik inderdaad ook geprobeerd, dit werkt op zich wel. Het enige is dat dan de paginanummering niet klopt, hij haalt teveel resultaten op.

Hij zegt dan dat ie zegmaar 300 resultaten heeft, terwijl dit in werkelijkheid maar 80 resultaten moeten zijn.

Maar dat valt ook wel te ondervangen door een tellertje te plaatsen, die het aantal juiste rijen telt...

Dank voor de reactie!

Maar het moet toch ook kunnen met een SQL-statement? Of werkt dat niet?
Offline jaronneke - 11/11/2009 10:12
Avatar van jaronneke MySQL interesse Dan tel je de preg match ipv de while(mysql result)
Offline thedutchduke - 11/11/2009 10:25
Avatar van thedutchduke Nieuw lid
jaronneke schreef:
Dan tel je de preg match ipv de while(mysql result)


Ja dat zeg ik inderdaad! Dat kan zeker!
Maar volgens mij moet het ook met een SQL-statement kunnen!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.186s