Zoeken in meerdere velden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis

Dennis

02/03/2007 22:18:00
Quote Anchor link
Ik zou graag willen weten hoe de query eruit moet komen te zien wanneer ik wil zoeken in twee of meer velden.

momenteel heb ik dit, maar dit werkt niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    $query = " SELECT * FROM vacatures WHERE vacature_titel LIKE '%".$_POST['vacature_titel']."%' AND vacature_diensverband = ".$_POST['vacature_diensverband']."";
 
PHP hulp

PHP hulp

20/11/2024 08:21:24
 
- SanThe -

- SanThe -

02/03/2007 22:21:00
Quote Anchor link
Bij de tweede ook LIKE zetten en OR gebruken.

Edit:
$query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' OR vacature_diensverband LIKE '%" . $_POST['vacature_diensverband'] . "%'";
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Dennis

Dennis

02/03/2007 22:31:00
Quote Anchor link
Jup dat was het :)
Was er bijna...bedankt!

Weer iets geleerd.
 
Dennis

Dennis

02/03/2007 23:36:00
Quote Anchor link
Nu het volgende:

ik heb een drop down list waaronder 6 opties ($_POST['vacature_dienstverband']) staan.
Echter moet de optie Geen Voorkeur veranderen in niets. zodat hij hierop niet zoekt

Stuke van de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<select name="vacature_dienstverband" value="<?php echo $_POST['vacature_dienstverband'] ?>">
      <option>Geen Voorkeur</option>
      <option>-------------</option>
      <option>fulltime</option>
      <option>Parttime</option>
      <option>Freelance</option>
      <option>Stage</option>
    </select></p>


Dus wanneer <option>Geen Voorkeur</option> of
<option>-------------</option> aangeklikt is, moet hij dus eigenlijk niets invullen in plaats van Geen Voorkeur of -------------

Ik hoop dat het duidelijk is!
Alvast bedankt.
 
- -

- -

02/03/2007 23:39:00
Quote Anchor link
<option value="waardevanvariabele">Geen voorkeur</option>

Edit: verwerk trouwens nooit postvariabelen regelrecht in je query, dat is erg gevoelig voor MySQL-injection.
Gewijzigd op 01/01/1970 01:00:00 door - -
 
- SanThe -

- SanThe -

02/03/2007 23:39:00
Quote Anchor link
Kan je die opties niet gewoon weghalen?
 
Dennis

Dennis

02/03/2007 23:42:00
Quote Anchor link
Zou kunnen...alleen dan wordt er dus altijd gezocht op dienstverband.
 
- SanThe -

- SanThe -

02/03/2007 23:45:00
Quote Anchor link
Anders checken of er iets is geselecteerd en query aanpassen.
 
Dennis

Dennis

02/03/2007 23:53:00
Quote Anchor link
Klinkt logisch.
Ik ben net pas begonnen met php dus als jullie mij misschien kunnen helpen?

ik heb er dit van gemaakt:

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
<?php
    if($_POST['vacature_dienstverband'] == "Geen Voorkeur")
    {

    $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' ";
    $result = mysql_query($query) or die ('fout: '.mysql_error());
    $aantal = mysql_num_rows($result);
    }
else{
    if (!empty($_POST))
    {

    //query samenstellen
    $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' AND vacature_dienstverband LIKE '%" . $_POST['vacature_dienstverband'] . "%'";
    $result = mysql_query($query) or die ('fout: '.mysql_error());
    $aantal = mysql_num_rows($result);
    }

    else
    {
    }

?>

Dit werkt niet. Wat is er fout?
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
- SanThe -

- SanThe -

02/03/2007 23:59:00
Quote Anchor link
Je hoeft natuurlijk niet alles dubbel te maken, dat geeft alleen maar meer kans op fouten. Ik zou het zo doen:

if(....)
{
$query = "......";
}
else (of elseif())
(
$query = "......";
}
en dan pas de rest:
$result = .......

Edit: Quotes aangepast, toets hapert af en toe.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Dennis

Dennis

03/03/2007 00:17:00
Quote Anchor link
Tnx! Het werkt.

Opgelost met de manier van hierboven.
Ik moet hem nu nog iets meer uitbreidden. Wellicht dat ik binnenkort met nog wat vraagjes kom.

Nogmaals bedankt.
 
Dennis

Dennis

03/03/2007 00:58:00
Quote Anchor link
Hoe zorg je er voor dat wanneer je een aantal resultaten hebt, de resultaten om en om een kleurtje hebben.

Dus:
resultaat 1 is wit
resultaat 2 is blauw
resultaat 3 is wit
resultaat 4 is blauw

enz..

gaat dat ook met php?
 
- SanThe -

- SanThe -

03/03/2007 01:08:00
Quote Anchor link
$var = 1;
loop
{
if($var == 1)
{
zwart
}
else
{
wit
}
$var = 3 - $var
}
eindloop

Edit: Een = je te weing.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Dennis

Dennis

03/03/2007 01:25:00
Quote Anchor link
OK...ik heb diverse dingen geprobeerd maar geen van alle werkte.

Waar moet ik dat zetten in mijn code? (laatste vraag van vanacht :D)

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
    include("include/connection.php");

    if (!empty($_POST))
    {

    if($_POST['vacature_dienstverband'] == "Geen Voorkeur")
    {

        $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' ORDER BY vacature_datum DESC ";
    }

    else
    {
        $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' AND vacature_dienstverband LIKE '%" . $_POST['vacature_dienstverband'] . "%' ORDER BY vacature_datum DESC";
    }

    //query samenstellen
    $result = mysql_query($query) or die ('fout: '.mysql_error());
    $aantal = mysql_num_rows($result);
    }

    else
    {
    }

    //controleren of er resultaten zijn gevonden
    if($aantal == 0)
    {

    echo "Er zijn geen vacatures gevonden met de titel    ".$_POST['vacature_titel']."";
    echo "U kunt <a href=\"zoek_vacature.php\">hier</a> opnieuw zoeken.";
    }

    if($aantal == 1)
    {

    echo "U heeft gezocht op: <b>".($_POST['vacature_titel'])."</b><br />";
    echo "Er is <b>".$aantal." </b>vacature gevonden <br />";
    }

    if($aantal > 1)
    {

    echo "U heeft gezocht op:<b>".($_POST['vacature_titel'])."</b><br />";
    echo "Er zijn <b>".$aantal." </b>vacatures gevonden <br />";
    }

    while($rij = mysql_fetch_array($result))
    {

    $vacature_ID = $rij['vacature_ID'];
    
    //resultaten laten zien
    echo "<table width=\"800\" border=\"1\" ><tr><td width=\"150\" valign=\"top\" >";
    echo $rij['vacature_datum']."<br />";
    echo "<td valign=\"top\" ><b>".$rij['vacature_titel']."</b><br />";
    echo $rij['vacature_inleiding']."</td>";
    echo "<td width=\"150\" valign=\"top\" ><b>Dienstverband:</b>".$rij['vacature_dienstverband']."<br />";
    echo "<b>Niveau:</b>".$rij['vacature_niveau']."<br />";
    echo "<b>Werkervaring:</b>".$rij['vacature_werkervaring']."<br />";
    echo "<a href=\"vacature\vacature.php?ID=$vacature_ID\">Meer informatie...</a>";    echo "</td></tr></table>";
    }

    ?>
 
- SanThe -

- SanThe -

03/03/2007 01:31:00
Quote Anchor link
Uiteraard zet je dat in de while().
Opm. Je maakt in de while steeds een <table> aan. Is dat de bedoeling?
 
Dennis

Dennis

03/03/2007 01:38:00
Quote Anchor link
NU nog even wel...

straks gaat de tabel eruit.
We zijn bezig met een prototype voor een schoolopdracht. Onze kennis van php was op 0.0 :) NU een klein beetje.

Het is al laat. Kan niet echt meer nadenken.

Ik heb er dit van gemaakt, maar dat werkt niet.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
    include("include/connection.php");

    if (!empty($_POST))
    {

    if($_POST['vacature_dienstverband'] == "Geen Voorkeur")
    {

        $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' ORDER BY vacature_datum DESC ";
    }

    else
    {
        $query = "SELECT * FROM vacatures WHERE vacature_titel LIKE '%" . $_POST['vacature_titel'] . "%' AND vacature_dienstverband LIKE '%" . $_POST['vacature_dienstverband'] . "%' ORDER BY vacature_datum DESC";
    }

    //query samenstellen
    $result = mysql_query($query) or die ('fout: '.mysql_error());
    $aantal = mysql_num_rows($result);
    }

    else
    {
    }

    //controleren of er resultaten zijn gevonden
    if($aantal == 0)
    {

    echo "Er zijn geen vacatures gevonden met de titel    ".$_POST['vacature_titel']."";
    echo "U kunt <a href=\"zoek_vacature.php\">hier</a> opnieuw zoeken.";
    }

    if($aantal == 1)
    {

    echo "U heeft gezocht op: <b>".($_POST['vacature_titel'])."</b><br />";
    echo "Er is <b>".$aantal." </b>vacature gevonden <br />";
    }

    if($aantal > 1)
    {

    echo "U heeft gezocht op:<b>".($_POST['vacature_titel'])."</b><br />";
    echo "Er zijn <b>".$aantal." </b>vacatures gevonden <br />";
    }

    
    $var = 1;
    loop
    {
    if($var == 1)
    {

    while($rij = mysql_fetch_array($result))
    {

    $vacature_ID = $rij['vacature_ID'];
    
    //resultaten laten zien
    echo "<table width=\"800\" border=\"1\" ><tr><td width=\"150\" valign=\"top\" >";
    echo $rij['vacature_datum']."<br />";
    echo "<td valign=\"top\" ><b>".$rij['vacature_titel']."</b><br />";
    echo $rij['vacature_inleiding']."</td>";
    echo "<td width=\"150\" valign=\"top\" ><b>Dienstverband:</b>".$rij['vacature_dienstverband']."<br />";
    echo "<b>Niveau:</b>".$rij['vacature_niveau']."<br />";
    echo "<b>Werkervaring:</b>".$rij['vacature_werkervaring']."<br />";
    echo "<a href=\"vacature\vacature.php?ID=$vacature_ID\">Meer informatie...</a>";    echo "</td></tr></table>";
    }
    }

    else
    {
    wit
    }
    $var = 3 - $var
    }
    eindloop
    ?>

Morgen weer verder.
Nogmaals tnx!
 
Dennis

Dennis

04/03/2007 21:37:00
Quote Anchor link
Het is me nog niet gelukt helaas. Iemand een oplossing?

Verder heb ik nog het volgende:

Wanneer ik deze code gebruik voor het zoeken in meerdere tabellen krijg ik bij de resultaten elk gevonden items 2 x te zien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = "SELECT * FROM cv, gewenstebaan WHERE cv_titel LIKE '%" . $_POST['cv_titel'] . "%' ORDER BY cv_datum DESC ";
 



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.