Zoeken dmv 2 teksvelden
ik ben nieuwe hier op het forum en zal proberen mij vraag duidelijk te formuleren.
Ik ben een beetje bezig met php / mysql aan het spel.
ik heb dus een database gemaakt voor een adressenboek.
Ik heb een tabel met daarin de waarde
voornaam
achternaam
etc..
nu kan ik zoeken op voornaam, maar ik wil ook kunnen zoeken op achternaam.
Individueel lukt dut wel maar samen niet.
voor zoeken voornaam heb ik.
<form name="form1" method="post">
voornaam <input name="voornaam" type="text" size="30" maxlength="12"><br>
achternaam <input name="achternaam" type="text" size="30" maxlength="12"><br>
<input type="submit" name="Submit" value="zoeken">
<input name="reset" type="reset" value="leegmaken">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include 'opendb.php';
$voornaam=$_POST["voornaam"];
$achternaam=$_POST["achternaam"];
$sql = "SELECT * FROM `Adres` WHERE voornaam LIKE'%$voornaam%' ;";
$query = mysql_query( $sql ) or die( mysql_error() );
while( $uitvoer = mysql_fetch_assoc( $query ) )
{
echo $uitvoer['voornaam'] . ' ' . $uitvoer['toevoeging'] . ' ' . $uitvoer['achternaam'] . ' <br>'
. $uitvoer['straatnaam'] . ' ' . $uitvoer['huisnummer'] . ' ' . $uitvoer['toevoegsel'] . '<br>'
. $uitvoer['postcode'] . ' ' . $uitvoer['plaats'] . '<br>' . $uitvoer[''] . '' .
$uitvoer['telefoon_vast'] . '<br>' . $uitvoer['telefoon_mobiel'] . '<br>' . $uitvoer['e-mail'] . '' . '<br> <hr>' ;
}
?>
include 'opendb.php';
$voornaam=$_POST["voornaam"];
$achternaam=$_POST["achternaam"];
$sql = "SELECT * FROM `Adres` WHERE voornaam LIKE'%$voornaam%' ;";
$query = mysql_query( $sql ) or die( mysql_error() );
while( $uitvoer = mysql_fetch_assoc( $query ) )
{
echo $uitvoer['voornaam'] . ' ' . $uitvoer['toevoeging'] . ' ' . $uitvoer['achternaam'] . ' <br>'
. $uitvoer['straatnaam'] . ' ' . $uitvoer['huisnummer'] . ' ' . $uitvoer['toevoegsel'] . '<br>'
. $uitvoer['postcode'] . ' ' . $uitvoer['plaats'] . '<br>' . $uitvoer[''] . '' .
$uitvoer['telefoon_vast'] . '<br>' . $uitvoer['telefoon_mobiel'] . '<br>' . $uitvoer['e-mail'] . '' . '<br> <hr>' ;
}
?>
maar als ik op dezelfde manier achternaam er achter zet, dan kan ik of alleen zoeken op voor of achternaam en niet samen.
Of hij maakt het venster niet leeg , waardoor de resultaten boven elkaar komen.
Hoe werkt dit ?
Ik wil zoeken op voor en/ of achternaam.
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
// Beveilig de input van een gebruiker altijd!
$voornaam = mysql_real_escape_string($_POST['voornaam']);
$achternaam = mysql_real_escape_string($_POST['achternaam']);
$sql = "SELECT * FROM adres WHERE ";
switch($_POST['mode'])
{
case 'voornaam' :
$sql .= "voornaam LIKE '%".$voornaam."%'";
break;
case 'achternaam' :
$sql .= "achternaam LIKE '%".$achternaam."%'";
break;
case 'beide' :
$sql .= "voornaam LIKE '%".$voornaam."%' AND achternaam LIKE '%".$achternaam."%'";
break;
}
?>
// Beveilig de input van een gebruiker altijd!
$voornaam = mysql_real_escape_string($_POST['voornaam']);
$achternaam = mysql_real_escape_string($_POST['achternaam']);
$sql = "SELECT * FROM adres WHERE ";
switch($_POST['mode'])
{
case 'voornaam' :
$sql .= "voornaam LIKE '%".$voornaam."%'";
break;
case 'achternaam' :
$sql .= "achternaam LIKE '%".$achternaam."%'";
break;
case 'beide' :
$sql .= "voornaam LIKE '%".$voornaam."%' AND achternaam LIKE '%".$achternaam."%'";
break;
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
if voornaam = empty...bla bla else zoek op achternaam.
dus ik kan nu op voornaam OF achternaam zoeken, dat is eigenlijk voldoende voor wat ik wilde, maar dat is bijna de hele code herhaald en te lang, dus het kan korter.
Is het nu opgelost, of wilde je nog wat anders?
maar op dit moment werkt het wel.
Laat je code eens zien dan? Misschien dat hij op sommige punten ingekort kan worden?