Zoek functie maken bij mijn script.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis  van DUin

Dennis van DUin

24/09/2013 16:19:39
Quote Anchor link
Beste mensen,

Ik heb nu een site waar je een database op hebt. Mijn studie genoten kunnen hier dan bestanden op zetten zodat we er allemaal bij kunnen. Nu zou ik boven deze bestanden willen kunnen zoeken op groep en of vak.

Het liefst met twee keuze schermpjes en dan een button met zoek:

Welke groep zoek je?:
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
<select type="tekst" name="zgroep">
  <option value="1 en 2">1 en 2</option>
  <option value="3 en 4">3 en 4</option>
  <option value="5 en 6">5 en 6</option>
  <option value="7 en 8">7 en 8</option>
</select>

Voor welk vak zoek je?: <select type="tekst" name="vak">
<option value="Rekenen">Rekenen</option>

<option value="Taal">Taal</option>
<option value="Spelling">Spelling</option>
<option value="Begrijpend lezen">Begrijpend lezen</option>
<option value="Schrijven">Schrijven</option>
<option value="Engels">Engels</option>

<option value="Aardrijkskunde">Aardrijkskunde</option>
<option value="Geschiedenis">Geschiedenis</option>

<option value="Handvaardigheid">Handvaardigheid</option>
<option value="Tekenen">Tekenen</option>
<option value="Drama">Drama</option>
<option value="Muziek">Muziek</option>
<option value="Techniek">Techniek</option>

<option value="Verkeer">Verkeer</option>
<option value="Sociaal emotioneel">Sociaal emotioneel</option>
<option value="Beweginsonderwijs">Beweginsonderwijs</option>
<option value="Godsdienst">Godsdienst</option>


En dan daar onder nog een button met zoek.

Als ik dan bijvoorbeeld invul 1 en 2 en dan taal en ik klik op zoek dan moet hij alleen de bestanden voor 1 en 2 met als vak taal weergeven. De bestanden geef ik nu weer in een lange lijst maar hoe pas ik dit aan?

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
// Query for a list of all existing files
$sql = 'SELECT `id`, `name`, `vak`, `groep`, `auteur`,  `mime`, `size`, `created` FROM `file`';
$result = $dbLink->query($sql);
 
// Check if it was successfull
if($result) {
    // Make sure there are some files in there
    if($result->num_rows == 0) {
        echo '<p>Er staan nog geen bestanden online.</p>';
    }
    else {
        // Print the top of a table
        echo '<table width="100%">
                <tr>
                    <td><b>Naam:</b></td>
                    <td><b>Vak:</b></td>
                    <td><b>Groep:</b></td>
                    <td><b>Auteur:</b></td>
                    <td><b>Download link:</b></td>
                </tr>';
 
        // Print each file
        while($row = $result->fetch_assoc()) {
            echo "

               <tr>
                    <td>{$row['name']}</td>
                    <td>{$row['vak']}</td>
                    <td>{$row['groep']}</td>
                    <td>{$row['auteur']}</td>
                    <td><a href='get_file.php?id={$row['id']}'>Download</a></td>
                </tr>";
        }
 
        // Close table
        echo '</table>';
    }
 
    // Free the result
    $result->free();
}
else
{
    echo 'Error! SQL query failed:';
    echo "<pre>{$dbLink->error}</pre>";
}


Kan iemand mij hiermee helpen met heel wat uitleg zodat ik er goed van kan leren? Ik kan niks op internet vinden en kom er niet uit met wat ik vind...

Groeten,
Dennis
Gewijzigd op 26/09/2013 08:38:47 door Dennis van DUin
 
PHP hulp

PHP hulp

25/04/2024 12:49:17
 
Dennis  van DUin

Dennis van DUin

26/09/2013 19:01:25
Quote Anchor link
Beste mensen,

IK heb nu dus een formulier weten te maken boven aan de pagina erbij die ook in de link weergeeft wat ik zoek:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<form name="input" action="testenzoek.php" method="get">
Welke groep zoek je?:
<select type="tekst" name="zoekgroep">
  <option value="1 en 2">1 en 2</option>
  <option value="3 en 4">3 en 4</option>
  <option value="5 en 6">5 en 6</option>
  <option value="7 en 8">7 en 8</option>
</select>
<input type="submit" value="Submit">
</form>


Nu kom ik er alleen echt niet uit waar ik nou moet vergelijken of de groep ook gelijk is aan de zoek groep in de link en hoe ik dat doe? Kan iemand me daar wat uitleg over geven of zeggen hoe het moet?

Groeten,
Dennis
 
Erwin H

Erwin H

26/09/2013 19:53:22
Quote Anchor link
Een zoek functie is niets anders dan een select query waarin je selecteert op bepaalde waardes. Dus in zijn simpelste vorm gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT kolommen
FROM tabel
WHERE kolom_iets = 'een waarde'

Wil je ook op delen van een waarde in de kolom kunnen selecteren, dan heb je verschillende mogelijkheden. Ofwel je gaat werken met LIKE, ofwel je zet er een FULL TEXT INDEX op, ofwel je gaat met regexen aan de slag. Deze drie heb ik bewust in deze volgorde gezet, omdat je over het algemeen als eerste naar de LIKE optie gaat kijken, dan naar de index en pas als laatste naar de regexen. Gezien je vraag denk ik dat een LIKE query volstaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT kolommen
FROM tabel
WHERE kolom_iets LIKE '%waarde%';

De % tekens zijn wildcards en geven eigenlijk gewoon aan dat op die plek vanalles kan staan. Elk record waar 'waarde' ergens in de betreffende kolom staat zal geselecteerd worden.
Om alle ins and outs te weten te komen zou ik even gaan zoeken op internet, er is genoeg zin en onzin over te vinden.

Dan hoe je het aanroept, eigenlijk gewoon het form posten dat je hebt en op je server die query draaien. Vervolgens laat je gewoon de resultaten zien en je bent klaar.
Let alleen wel op bij je values in je select nu.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<select type="tekst" name="zoekgroep">
  <option value="1 en 2">1 en 2</option>
  <option value="3 en 4">3 en 4</option>
  <option value="5 en 6">5 en 6</option>
  <option value="7 en 8">7 en 8</option>
</select>

Je hebt nu spaties in die values staan, terwijl dat server side keys van een array gaan worden. Dat is nooit een goed idee. Probeer alleen (kleine) letters, getallen en underscores te gebruiken. Dan weet je zeker dat je er nooit een probleem mee krijgt.
 



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.