Minimum twee karakters
Ik ben bezig om een zoekscript in een website te zetten, maar hoe kan je een minimum aantal karakters toewijzen? Dus niet dat als je op enter drukt, je alles uit de database kunt halen. Dat is bij mij nu namelijk wel het geval. Op internet kan ik er echter weinig over vinden.
Ook zie je wel eens op sites dat je twee karakters minimaal moet invullen, echter als je dan als zoekopdracht %% invult, je alsnog alles kan zien.
Het huidige script wat ik gebruik is het volgende:
http://www.plaatscode.be/38120/
Ook zie je wel eens op sites dat je twee karakters minimaal moet invullen, echter als je dan als zoekopdracht %% invult, je alsnog alles kan zien.
Het huidige script wat ik gebruik is het volgende:
http://www.plaatscode.be/38120/
if(strlen(POST) <= 2) { echo"2 karakters"; exit; }
Wel trim eroverheen halen natuurlijk...
Tikkes een % is ook een character, dus 2 keer een % returned bij strlen ook een true.
Misschien dat mysql_real_escape_string helpt, of anders % ook vervangen door zijn html entitie??
Tikkes een % is ook een character, dus 2 keer een % returned bij strlen ook een true.
Misschien dat mysql_real_escape_string helpt, of anders % ook vervangen door zijn html entitie??
if(strlen(str_replace('%','',$zoekterm)) <= 2)
{
echo 'Zoektem tekort' ;
}
else
{
echo $zoekterm ;
}
Zo kun je controleren of je term alleen uit %% bestaat en als dat niet zo is kun je ze wel gewoon als wildcard gebruiken
{
echo 'Zoektem tekort' ;
}
else
{
echo $zoekterm ;
}
Zo kun je controleren of je term alleen uit %% bestaat en als dat niet zo is kun je ze wel gewoon als wildcard gebruiken
@ Jacco:
Waar moet ik dat plaatsen dan?
Niet hier neem ik aan, dat werkt niet ($zoekterm veranderd in rowres):
Waar moet ik dat plaatsen dan?
Niet hier neem ik aan, dat werkt niet ($zoekterm veranderd in rowres):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
if(($rowres)<=0) {
print '<P><B>Uw zoekactie heeft geen resultaten opgeleverd.</B></P>
<P>Ga terug en probeer het opnieuw met een minder nauwkeurige zoekterm.</P>';
}else{
if(($rowres)<=2) {
print 'Gevonden bedrijf:<BR /><BR />';
}else{
print 'Gevonden bedrijven:<BR /><BR />';
}
while($obj = mysql_fetch_object($result)) {
?>
if(($rowres)<=0) {
print '<P><B>Uw zoekactie heeft geen resultaten opgeleverd.</B></P>
<P>Ga terug en probeer het opnieuw met een minder nauwkeurige zoekterm.</P>';
}else{
if(($rowres)<=2) {
print 'Gevonden bedrijf:<BR /><BR />';
}else{
print 'Gevonden bedrijven:<BR /><BR />';
}
while($obj = mysql_fetch_object($result)) {
?>
Kan iemand hier nog even naar kijken voor me?
@Roy
Waar gebruik je nou strlen? Het ging er toch om of de opgegeven zoekterm lang genoeg was?
Dat zal het opgegeven trefwoord moeten zijn? Dan krijg je dus iets als:
Waar gebruik je nou strlen? Het ging er toch om of de opgegeven zoekterm lang genoeg was?
Dat zal het opgegeven trefwoord moeten zijn? Dan krijg je dus iets als:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if(!strlen(str_replace('%','',$_POST['trefwoord']) >= 2){
// zonder de %% is het zoekwoord te kort
}
?>
if(!strlen(str_replace('%','',$_POST['trefwoord']) >= 2){
// zonder de %% is het zoekwoord te kort
}
?>
Dit werkt nu inderdaad Robert. Sorry :)
Maar als ik nu als zoekterm 1 letter doe bijvoorbeeld, dat kan wel. Ik wil echter dat hij minimaal 2 karakters moet zoeken.
EDIT:
Dit stukje script heb ik even gepost. Het even zeker met mijn if/else opbouw te maken? Als ik nu namelijk ga zoeken op bijv Jansen.. dan zie ik de resultaten met daarboven alsnog de zin: "Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.". Komt dit door:
??
Maar als ik nu als zoekterm 1 letter doe bijvoorbeeld, dat kan wel. Ik wil echter dat hij minimaal 2 karakters moet zoeken.
EDIT:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}else{
?>
Dit stukje script heb ik even gepost. Het even zeker met mijn if/else opbouw te maken? Als ik nu namelijk ga zoeken op bijv Jansen.. dan zie ik de resultaten met daarboven alsnog de zin: "Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.". Komt dit door:
??
Gewijzigd op 01/01/1970 01:00:00 door Roy
dan moet je Javascript gebruiken!
Chilion
Chilion
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
Else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
Else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
ofwel zet je daar die ELSE (zoals ik doe) ofwel doe je exit; onder je echo.
Parse error: syntax error, unexpected T_ELSE in zoek.inc.php on line 98
Die melding kreeg ik. Regel 98 is:
else { is de 98ste regel. Heb daaronder een { bij gezet, dan zie ik het formulier wel.. maar dan krijg ik bij iedere zoekopdracht de melding van een te kort trefwoord.
Die melding kreeg ik. Regel 98 is:
Code (php)
else { is de 98ste regel. Heb daaronder een { bij gezet, dan zie ik het formulier wel.. maar dan krijg ik bij iedere zoekopdracht de melding van een te kort trefwoord.
Gewijzigd op 01/01/1970 01:00:00 door Roy
Gisteravond nog mee loten klooien, maar het lukt me even niet. Kan iemand dit verhelpen? Dan werkt het volgens mij perfect.
kijk alle haakjes na!
die } voor je else, wat sluit die?
zo'n fout is meestal! kijk ook na op puntkomma's, aanhalingstekens, etc.
Edit:
indien je mijn scriptje gebruikte, dan heb je 2 maal else! dat kan uiteraard niet hé ;-)
die } voor je else, wat sluit die?
zo'n fout is meestal! kijk ook na op puntkomma's, aanhalingstekens, etc.
Edit:
indien je mijn scriptje gebruikte, dan heb je 2 maal else! dat kan uiteraard niet hé ;-)
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
Ik loop echt even te rommelen dan met de if/else constructie.
Dit heb ik nu geprobeert, maar dat lukt dus niet. Overigens geeft hij in dit voorbeeld alleen de foutmelding als ik 4 karakters of meer zoek, dus de <=2 meost ik even anders doen. Echter geeft hij nu ook altijd de foutmelding weer, ook als hij de zoekresultaten laat zien en kan je gewoon op 1 letter zoeken...
DAN KOMT HIER DE HTML TABEL
Dit heb ik nu geprobeert, maar dat lukt dus niet. Overigens geeft hij in dit voorbeeld alleen de foutmelding als ik 4 karakters of meer zoek, dus de <=2 meost ik even anders doen. Echter geeft hij nu ook altijd de foutmelding weer, ook als hij de zoekresultaten laat zien en kan je gewoon op 1 letter zoeken...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
DAN KOMT HIER DE HTML TABEL
Iemand hier een oplossing voor?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
// door het ! gaat die niet door wanneer het aantal karakters <= 2, maar andersom.. :)
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
// door het ! gaat die niet door wanneer het aantal karakters <= 2, maar andersom.. :)
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
Hetzelfde probleem Robert
staat die functie niet fout?
moet het niet zijn:
if(strlen(str_replace(blablabla)) <= 2)
dat ! weg...
moet het niet zijn:
if(strlen(str_replace(blablabla)) <= 2)
dat ! weg...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?PHP
if(strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
exit;
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
if(strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
exit;
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
Oke, dit werkt inderdaad super. Echter heb ik:
Trefwoord, plaats, provincie en rubriek.
Als ik nu op bijvoorbeeld Noord-Holland selecteer en geen trefwoord, geeft hij de melding dat ik niet genoeg karakters heb ingevuld. Hoe kan ik dit oplossen?
Trefwoord, plaats, provincie en rubriek.
Als ik nu op bijvoorbeeld Noord-Holland selecteer en geen trefwoord, geeft hij de melding dat ik niet genoeg karakters heb ingevuld. Hoe kan ik dit oplossen?
in je if een 2de conditie zetten...vb:
EDIT:
code aangepast! moest empty zijn
EDIT:
code aangepast! moest empty zijn
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
@Roy
je had ook het commentaar moeten lezen, ik zei hetzelfde als Tikkes, alleen had je scriptje nog niet aangepast, dus de fout zat er nog wel in... :)
je had ook het commentaar moeten lezen, ik zei hetzelfde als Tikkes, alleen had je scriptje nog niet aangepast, dus de fout zat er nog wel in... :)




