Hoi iedereen,
Ik zit hier met een zoekmachine die goed werkt op de letters A t/m Z. Geef de letter mee in de url en zoek de daarbij behorende winkels.
Nu zit ik met 1 vraag. Ik heb een paar winkels die beginnen met een cijfer (0-9). In de zoekmachine kan je dit ook meegeven, maar helaas geeft het geen juiste werking.
Mijn vraag is, hoe kan ik in de database zoeken naar winkels die beginnen met een cijfer? Ongeacht welk cijfer ingevoerd word?
Dit script wordt gebruikt om de WHERE op te halen voor de letters (JOIN e.d. wordt in een ander stuk in elkaar gezet):
Via een elseif moet het stukje komen waar de WHERE komt met de juiste code om te zoeken naar winkels die beginnen met een cijfer.PHP Code:
if(isset($_GET['letter']) and $_GET['letter'] != "0-9") {
$letter = secure_string( $_GET['letter'] );
$letters = "WHERE `winkels`.`winkel_naam` LIKE '".$letter."%'";
$soort = $letter;
$zoek = 'zoeken/';
}
Iemand een tip?
- Zoeken in database 0-9 cijfers
-
26-01-2011, 14:20 #1
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
Zoeken in database 0-9 cijfers
-
-
26-01-2011, 14:23 #2
- Berichten
- 376
- Lid sinds
- 18 Jaar
Re: Zoeken in database 0-9 cijfers
PHP Code:if(isset($_GET['letter'])) {
$letter = secure_string( $_GET['letter'] );
$letters = "WHERE `winkels`.`winkel_naam` LIKE '".$letter."%'";
$soort = $letter;
$zoek = 'zoeken/';
}
Vergeet overigens niet een index aan te maken op winkel_naam.
-
26-01-2011, 14:33 #3
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
Re: Zoeken in database 0-9 cijfers
Die index zit op winkel_naam.
$_GET letter zal waarde 0-9 hebben. Dan wil ik juist dat alle winkels die met welk cijfer dan ook weergegeven worden. Dus de $_GET zal geen waarde 0, 1 of 2 hebben.
Bijvoorbeeld iemand drukt op zoeken op 0-9, en krijgt dan:
2Call.nl
3Suisses
enz.
-
26-01-2011, 14:45 #4
- Berichten
- 376
- Lid sinds
- 18 Jaar
Re: Zoeken in database 0-9 cijfers
A zo,
je zou dit kunnen doen:
PHP Code:if(isset($_GET['letter'])) {
$letter = secure_string( $_GET['letter'] );
if($_GET['letter'] == '0-9') {
for($x=0;$x<10;$x++) {
$where[] = "winkels.winkel_naam LIKE '$x%'";
}
$where = implode(" OR ", $where);
} else {
$where = "winkels.winkel_naam LIKE '$letter%'";
}
$letters = "WHERE $where";
$soort = $letter;
$zoek = 'zoeken/';
}
-
26-01-2011, 14:46 #5
- Berichten
- 331
- Lid sinds
- 15 Jaar
Re: Zoeken in database 0-9 cijfers
je zou natuurlijk ook LIKE '".$letter."%' kunnen veranderen in LIKE '%".$letter."%', zodat hij er nog iets aan de voorkant toevoegt als je iets deel /onvolledig invult.
-
26-01-2011, 14:50 #6
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
Re: Zoeken in database 0-9 cijfers
Thanx Peter, dit werkt goed.
Ik was even aan het Googlen en kwam dit tegen.
PHP Code:WHERE winkel REGEXP '[0-9]'
Bedankt!
-
26-01-2011, 14:52 #7
- Berichten
- 376
- Lid sinds
- 18 Jaar
Re: Zoeken in database 0-9 cijfers
^[0-9]+$
of zoiets.Laatst aangepast door Peter W. : 26-01-2011 om 14:58
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