Ik heb een query die zoekt naar het getal 2 in de database.
Maar dan krijg ik ook resultaten van serie 12 en 22. Terwijl het alleen 2 moet zijn.PHP Code:
LIKE '%" . $_GET['serie'] . "%'
Welke query moet ik gebruiken?
In de database staat het als...
2 , 12 , 14 , 18, 22
- LIKE Query
-
21-04-2013, 23:00 #1
- Berichten
- 463
- Lid sinds
- 14 Jaar
LIKE Query
-
In de schijnwerper
wegens beëindiging bedrijf beschikbaar | InternetRadioLuisteren.nl DA10 - DR26Website te koop(SEO) Tekstschrijver nodig voor winstgevende teksten?Freelance / WerkGratis Bol.com cadeaubon t.w.v. €150SEO/LinkbuildingLinkbuilding software met 75.000 blogwebsites NL / EN/ FR/ DE en veel andereSEO/Linkbuilding -
21-04-2013, 23:10 #2
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: LIKE Query
Sowieso zorgen dat je een integer veld in de mysql hebt en dan de query aanpassen naar:
$sql = "select velden from tabel where integerveldje = " . (int)$_GET['serie'];
-
21-04-2013, 23:35 #3
- Berichten
- 463
- Lid sinds
- 14 Jaar
Re: LIKE Query
Helaas is dat niet de oplossing. Maar bedankt!
-
21-04-2013, 23:51 #4
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: LIKE Query
Als je zoekt op een nummer is dat wel de oplossing.
Als je daarentegen het getal ergens in een tekst heb staan, dan niet idd. Maar dat heb je niet gezegd :)
Aanvullend bericht:
Even aangenomen dat je de waarden als '1,2,3,4,5' in een veld hebt staan kun je eventueel ook onderstaande gebruiken.
... where CONCAT(',', veldnaam, ',') like '%,".(int)$_GET['serie'].",%'
Moet je alleen even opletten met eventuele spaties tussen de comma's en de getallen en eventueel de like daarop aanpassen.Laatst aangepast door John Timmer : 22-04-2013 om 00:13 Reden: Automatisch samengevoegd.
-
22-04-2013, 06:38 #5
- Berichten
- 153
- Lid sinds
- 14 Jaar
Re: LIKE Query
Hopelijk ten overvloede, maar denk aan je escaping.
Zo lang er nog voorbeelden op internet online staan waarbij iets uit de $_GET rechtstreeks de database in gaat, blijven we onveilige websites/applicaties houden. zal er altijd iemand zijn die hetzelfde probleem heeft en de oplossing een-op-een overneemt en zo een beveligingslek introduceert.
-
22-04-2013, 07:44 #6
- Berichten
- 750
- Lid sinds
- 16 Jaar
Re: LIKE Query
Houd er rekening mee dat een LIKE met twee procent tekens de database geen gebruik kan maken van indexen.
En ben het eens met Henry.
Zolang code kopiëren een trend blijft zonder dat de programmeur weet dat het gevaarlijke code is. Dan zullen er steeds meer websites komen waar lekken in zitten.
Btw ik kom ze hier ook vaak genoeg tegen in het website verkopen onderdeel.
-
22-04-2013, 08:28 #7
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: LIKE Query
Direct een goed voorbeeldje van een slecht database ontwerp als het al bijna onmogelijk is met een simpele query een record te vinden met het getal 2 erin.. Als er dan al perse meerdere getallen in een database moeten staan moeten ze wel makkelijk te scheiden zijn, en niet alleen door een komma. Maar zelfs dan is het misschien nog een beter idee een koppeltabel te gebruiken om de gekozen records te koppelen (hoewel, ik weet niet waar de getallen voor staan die je wilt gebruiken).
Denk aan een CSV bestand, dat scheid elke veld met een komma en plaatst de waardes tussen quotes bijvoorbeeld.
Je moet je ervan bewust zijn dat de %-tekens in de LIKE-query gewoon wildcards zijn voor elk willekeurig teken. %2% staat dus voor zowel 2, als 12, als 21, als 121, als 214 en noem maar op.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic