D.M.V menu list gegevens uit database halen
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
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)
Gewijzigd op 20/04/2013 18:14:19 door Landleven Tips
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:
<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']."'")
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'] ) ) ?
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.
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)
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());
?>