D.M.V menu list gegevens uit database halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Anthony de meulemeester

anthony de meulemeester

20/04/2013 16:00:02
Quote Anchor link
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
 
PHP hulp

PHP hulp

03/08/2020 10:50:31
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/04/2013 16:10:08
Quote Anchor link
heb je al een database indeling? zo ja laat eens zien welke tabellen je hebt en welke velden daar in zitten?


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM kandidaten WHERE functie='lasser'
Gewijzigd op 20/04/2013 16:13:03 door Frank Nietbelangrijk
 
Jan Koehoorn

Jan Koehoorn

20/04/2013 16:30:30
Quote Anchor link
Tip: je gebruikt <label> niet op de juiste manier.
 
Anthony de meulemeester

anthony de meulemeester

20/04/2013 16:52:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/04/2013 18:10:45
Quote Anchor link
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)
 
Landleven Tips

Landleven Tips

20/04/2013 18:12:08
Quote Anchor link
Nog een tip: Kijk naar mysql_fetch_array()
Gewijzigd op 20/04/2013 18:14:19 door Landleven Tips
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/04/2013 18:19:18
Quote Anchor link
er mist een ; achter regel 2.
er mist een " in regel 3. doe het liever zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= mysql_query("SELECT * FROM kanidaten WHERE functie='".$kanidaat."')";
?>

op regel 6 zou ik gebruik maken van mysql_fetch_assoc()

dan zou ik misschien als test nog even op regel 5 doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'aantal gevonden records: '.mysql_num_rows($result);
?>
 
Anthony de meulemeester

anthony de meulemeester

21/04/2013 11:15:40
Quote Anchor link
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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" >

<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">&nbsp;</th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
    
    }
}

?>

kan dat met zoiets : $result = mysql_query("SELECT * FROM kandidaten WHERE functie, regio='".$_POST['select']".$_POST['select2']."'")
 
Dennis WhoCares

Dennis WhoCares

21/04/2013 11:17:51
Quote Anchor link
$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
Gewijzigd op 21/04/2013 11:20:48 door Dennis WhoCares
 
Anthony de meulemeester

anthony de meulemeester

21/04/2013 11:35:55
Quote Anchor link
wat doe ik dan met dit if ( isset ( $_POST['select'] ) ) ?
 
Dennis WhoCares

Dennis WhoCares

21/04/2013 11:38:37
Quote Anchor link
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
 
Anthony de meulemeester

anthony de meulemeester

21/04/2013 11:42:47
Quote Anchor link
ok bedankt klinkt logisch
 
- SanThe -

- SanThe -

21/04/2013 11:48:27
Quote Anchor link
Denk ook aan de beveiliging want nu is het nog lek. Zie SQL-Injection.
 
Anthony de meulemeester

anthony de meulemeester

21/04/2013 17:40:39
Quote Anchor link
volgend eprobleem doet zich voor met deze code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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 ?
 
G P

G P

21/04/2013 18:01:58
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (!empty($_POST['functie']) && !empty($_POST['provincie'])){
    // Uitvoeren van functie en provincie
} elseif (!empty($_POST['functie'])){
    // Uitvoeren van functie
} elseif (!empty($_POST['provincie'])){
    // Uitvoeren van provincie
} else {
    // Uitvoeren van geen van beide
}
?>
 
Anthony de meulemeester

anthony de meulemeester

21/04/2013 18:29:45
Quote Anchor link
Danku maar hoe gooi ik dit dan met de huidige code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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());

?>


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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" >

<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">&nbsp;</th>
</tr>
<tr>
<th scope="row"><input type="submit" name="show" id="show" value="zoeken" /></th>
</tr>
</table>
</form>







Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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());
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.