D.M.V menu list gegevens uit database halen
Beste mensen,
Ik probeer al een geruime tijd iets in elkaar te steken waardoor ik gegevens uit mijn db kan halen door een simpel drop down menu.
ik heb een tabel kandidaten aangemaakt met volgende velden: naam, leeftijd, ervaring, functie.
nu heb ik een drop down menu met volgende gegevens
<form id="form1" name="form1" method="post" action="">
<label>
<select name="select" id="select">
<option value="1">lasser</option>
<option value="2">frezer</option>
<option value="3">draaier</option>
<option value="4">electricien</option>
<option value="5">mecanicien</option>
</select>
</label>
<label>
<input type="submit" name="button" id="button" value="Show" />
</label>
</form>
nu zou ik willen dat als iemand bv lasser aanduid alle kandidaten die als functie lasser hebben met al hun gegevens uit de db worden getoont.
Hoe kan ik did het beste doen?
alvast bedankt
Ik probeer al een geruime tijd iets in elkaar te steken waardoor ik gegevens uit mijn db kan halen door een simpel drop down menu.
ik heb een tabel kandidaten aangemaakt met volgende velden: naam, leeftijd, ervaring, functie.
nu heb ik een drop down menu met volgende gegevens
<form id="form1" name="form1" method="post" action="">
<label>
<select name="select" id="select">
<option value="1">lasser</option>
<option value="2">frezer</option>
<option value="3">draaier</option>
<option value="4">electricien</option>
<option value="5">mecanicien</option>
</select>
</label>
<label>
<input type="submit" name="button" id="button" value="Show" />
</label>
</form>
nu zou ik willen dat als iemand bv lasser aanduid alle kandidaten die als functie lasser hebben met al hun gegevens uit de db worden getoont.
Hoe kan ik did het beste doen?
alvast bedankt
Toevoeging op 20/04/2013 16:24:13:
goed je hebt een formulier. daar wordt een functie gekozen. het formulier moet daarna naar de server verstuurd worden. een php script wordt dan weer aangeroepen, met $_POST['select'] wordt de waarde van de dropdown uitgelezen. die kan 1t/m5 zijn in het voorbeeld dat jij geeft. Heb je een tabel met functies?
je query moet zoiets worden:
Gewijzigd op 20/04/2013 16:13:03 door Frank Nietbelangrijk
Tip: je gebruikt <label> niet op de juiste manier.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$query="SELECT * from kandidaten WHERE functie=\"".$_POST['select']."\"";
$sql=mysql_query($query);
dan probeer ik alles te tonen. maar het lukt langs geen meter.
iemand een eenvoudige oplossing? want ik maak het volgens mij te moeilijk
$query="SELECT * from kandidaten WHERE functie=\"".$_POST['select']."\"";
$sql=mysql_query($query);
dan probeer ik alles te tonen. maar het lukt langs geen meter.
iemand een eenvoudige oplossing? want ik maak het volgens mij te moeilijk
een tip om de oplossing te vinden:
doe tussen regel 5 en 6 eerst eens echo $query;
de tekst die je dan ziet in je in phpMyAdmin onder de tab Sql plakken en kijken wat er voor resultaat uitkomt.
Laat ons anders ook even zien hoe je met je database verbinding maakt (mysql_connect en mysql_select_db)
doe tussen regel 5 en 6 eerst eens echo $query;
de tekst die je dan ziet in je in phpMyAdmin onder de tab Sql plakken en kijken wat er voor resultaat uitkomt.
Laat ons anders ook even zien hoe je met je database verbinding maakt (mysql_connect en mysql_select_db)
Nog een tip: Kijk naar mysql_fetch_array()
Gewijzigd op 20/04/2013 18:14:19 door Landleven Tips
er mist een ; achter regel 2.
er mist een " in regel 3. doe het liever zo:
op regel 6 zou ik gebruik maken van mysql_fetch_assoc()
dan zou ik misschien als test nog even op regel 5 doen:
er mist een " in regel 3. doe het liever zo:
op regel 6 zou ik gebruik maken van mysql_fetch_assoc()
dan zou ik misschien als test nog even op regel 5 doen:
ok ik heb het kunnen laten werken. volgende vraag is hoe kan ik meerdere zoekparameters opgeven? zodat hij bv alle lassers uit een bepaalde regio gaat tonen
<form id="form1" name="form1" method="post" action="" >
<label for="select"></label>
<table width="200" border="0" align="center">
<tr>
<th scope="row"><select name="select" id="select">
<option selected="selected" disabled="disabled">Kies functiegebied</option>
<option value="lasser">lasser</option>
<option value="mecanicien">Mecanicien</option>
<option value="electricien">electricien</option>
<option value="metser">metser</option>
</select></th>
</tr>
<tr>
<th scope="row"><label for="select2"></label>
<select name="select2" id="select2">
<option selected="selected">Kies Regio</option>
<option value="oost-vlaanderen">Oost-Vlaanderen</option>
<option value="west-vlaanderen">West-Vlaanderen</option>
</select></th>
</tr>
<tr>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</form>
kan dat met zoiets : $result = mysql_query("SELECT * FROM kandidaten WHERE functie, regio='".$_POST['select']".$_POST['select2']."'")
<form id="form1" name="form1" method="post" action="" >
<label for="select"></label>
<table width="200" border="0" align="center">
<tr>
<th scope="row"><select name="select" id="select">
<option selected="selected" disabled="disabled">Kies functiegebied</option>
<option value="lasser">lasser</option>
<option value="mecanicien">Mecanicien</option>
<option value="electricien">electricien</option>
<option value="metser">metser</option>
</select></th>
</tr>
<tr>
<th scope="row"><label for="select2"></label>
<select name="select2" id="select2">
<option selected="selected">Kies Regio</option>
<option value="oost-vlaanderen">Oost-Vlaanderen</option>
<option value="west-vlaanderen">West-Vlaanderen</option>
</select></th>
</tr>
<tr>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</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
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if ( isset ( $_POST['select'] ) ){
$result = mysql_query("SELECT * FROM kandidaten WHERE functie='".$_POST['select']."'")
or die(mysql_error());
echo "<br />";
echo "<br />";
echo 'aantal kandidaten : '.mysql_num_rows($result);
echo "<br />";
echo "<br />";
echo "<table border='1' align='left' cellpadding='4' cellspacing='0' bordercolor='#666666'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
while($row = mysql_fetch_array( $result )) {
echo "<tr>";
echo "<td>" . $row['naam'] . "</td>";
echo "<td>" . $row['leeftijd'] . "</td>";
echo "<td>" . $row['regio'] . "</td>";
echo "<td>" . $row['functie'] . "</td>";
echo "<td>" . $row['ervaring'] . "</td>";
echo "</tr>";
}
}
?>
if ( isset ( $_POST['select'] ) ){
$result = mysql_query("SELECT * FROM kandidaten WHERE functie='".$_POST['select']."'")
or die(mysql_error());
echo "<br />";
echo "<br />";
echo 'aantal kandidaten : '.mysql_num_rows($result);
echo "<br />";
echo "<br />";
echo "<table border='1' align='left' cellpadding='4' cellspacing='0' bordercolor='#666666'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
while($row = mysql_fetch_array( $result )) {
echo "<tr>";
echo "<td>" . $row['naam'] . "</td>";
echo "<td>" . $row['leeftijd'] . "</td>";
echo "<td>" . $row['regio'] . "</td>";
echo "<td>" . $row['functie'] . "</td>";
echo "<td>" . $row['ervaring'] . "</td>";
echo "</tr>";
}
}
?>
kan dat met zoiets : $result = mysql_query("SELECT * FROM kandidaten WHERE functie, regio='".$_POST['select']".$_POST['select2']."'")
$result = mysql_query("SELECT * FROM kandidaten WHERE functie='".$_POST['select']."' AND regio ='" . $_POST['select2'] . "'")
Dit zijn standaard SQL query's, je zou eens een tutorial kunnen lezen
Dit zijn standaard SQL query's, je zou eens een tutorial kunnen lezen
Gewijzigd op 21/04/2013 11:20:48 door Dennis WhoCares
wat doe ik dan met dit if ( isset ( $_POST['select'] ) ) ?
je hebt in je formulier staan: <select name="select">
zodra je formulier wordt verzonden, gebruik je deze 'if(isset($_POST['select'])) als controle of het formulier verzonden is.
Je select2 bevat ook altijd een waarde, dus is verder niet nodig om verder wat te veranderen.
Alleen je SQL query zoals ik hierboven al aangegeven had
zodra je formulier wordt verzonden, gebruik je deze 'if(isset($_POST['select'])) als controle of het formulier verzonden is.
Je select2 bevat ook altijd een waarde, dus is verder niet nodig om verder wat te veranderen.
Alleen je SQL query zoals ik hierboven al aangegeven had
ok bedankt klinkt logisch
Denk ook aan de beveiliging want nu is het nog lek. Zie SQL-Injection.
volgend eprobleem doet zich voor met deze code
nu toont aleen maar resultaten als iemand een functie kiest en een provincie.
het zou ook moeten zijn dat als iemand bv aleen functie aanduid of aleen provincie
ik dacht aan AND OR maar dat werkt niet. iemand een oplossing ?
Code (php)
1
2
3
2
3
<?php
$result = mysql_query("SELECT * FROM kandidatentest WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
?>
$result = mysql_query("SELECT * FROM kandidatentest WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
?>
nu toont aleen maar resultaten als iemand een functie kiest en een provincie.
het zou ook moeten zijn dat als iemand bv aleen functie aanduid of aleen provincie
ik dacht aan AND OR maar dat werkt niet. iemand een oplossing ?
Code (php)
Danku maar hoe gooi ik dit dan met de huidige code
Toevoeging op 21/04/2013 19:33:51:
Hier is wat ik heb, het werkt maar niet zo waterdicht. ik kan NIET op functiegebied zoeken.
formulier
<form id="form1" name="form1" method="post" action="" >
<label for="select"></label>
<table width="200" border="0" align="center">
<tr>
<th scope="row"><select name="select" id="select">
<option selected="selected" disabled="disabled">Kies functiegebied</option>
<option value="lasser">lasser</option>
<option value="mecanicien">Mecanicien</option>
<option value="electricien">electricien</option>
<option value="chauffeur">chauffeur</option>
</select></th>
</tr>
<tr>
<th scope="row"><label for="select2"></label>
<select name="select2" id="select2">
<option selected="selected">Kies Regio</option>
<option value="Oost-vlaanderen">Oost-Vlaanderen</option>
<option value="West-vlaanderen">West-Vlaanderen</option>
</select></th>
</tr>
<tr>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</form>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if ( isset ( $_POST['select'] ) ){
$result = mysql_query("SELECT * FROM kandidatengoed WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
or die(mysql_error());
?>
if ( isset ( $_POST['select'] ) ){
$result = mysql_query("SELECT * FROM kandidatengoed WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
or die(mysql_error());
?>
Toevoeging op 21/04/2013 19:33:51:
Hier is wat ik heb, het werkt maar niet zo waterdicht. ik kan NIET op functiegebied zoeken.
formulier
<form id="form1" name="form1" method="post" action="" >
<label for="select"></label>
<table width="200" border="0" align="center">
<tr>
<th scope="row"><select name="select" id="select">
<option selected="selected" disabled="disabled">Kies functiegebied</option>
<option value="lasser">lasser</option>
<option value="mecanicien">Mecanicien</option>
<option value="electricien">electricien</option>
<option value="chauffeur">chauffeur</option>
</select></th>
</tr>
<tr>
<th scope="row"><label for="select2"></label>
<select name="select2" id="select2">
<option selected="selected">Kies Regio</option>
<option value="Oost-vlaanderen">Oost-Vlaanderen</option>
<option value="West-vlaanderen">West-Vlaanderen</option>
</select></th>
</tr>
<tr>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if (!empty($_POST['select']) && !empty($_POST['select2'])){
// Uitvoeren van functie en provincie
} elseif (!empty($_POST['select'])){
// Uitvoeren van functie
} elseif (!empty($_POST['select2'])){
// Uitvoeren van provincie
} else {
// Uitvoeren van geen van beide
}
{
$result = mysql_query("SELECT * FROM kandidatengoed WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
or die(mysql_error());
?>
if (!empty($_POST['select']) && !empty($_POST['select2'])){
// Uitvoeren van functie en provincie
} elseif (!empty($_POST['select'])){
// Uitvoeren van functie
} elseif (!empty($_POST['select2'])){
// Uitvoeren van provincie
} else {
// Uitvoeren van geen van beide
}
{
$result = mysql_query("SELECT * FROM kandidatengoed WHERE voorkeursfunctiegebied1='".$_POST['select']."' AND provincie='" . $_POST['select2'] . "'")
or die(mysql_error());
?>




