Zoekveld in een simpel databaseje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis

Dennis

12/03/2007 11:35:00
Quote Anchor link
Hallo,

Ik ben een beginnend php programeur en ik heb een vraag.

Ik heb de tutorial voor databases voor beginners gevolgd. Daarmee heb ik deze code gevormd...

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
<?php

// eerst verbind je naar de database
$link = mysql_connect('localhost','localuser','localpasswd');
        mysql_select_db('localdb',$link);

// daarna probeer je een query uit te voeren
    $sql = 'SELECT voornaam, achternaam, adres, plaats, email
        FROM     adressen
        WHERE     voornaam = "dennis"'
;
    $res = mysql_query($sql,$link);
    if ($res && mysql_num_rows($res) >= 1)
    {

// begin tabel
        echo '<table border="10">
            <tr>
                <td><b>Voornaam</b></td>
                <td><b>Achternaam</b></td>
                <td><b>Adres</b></td>
                <td><b>Plaats</b></td>
                <td><b>Email</b></td>
            </tr>'
;

        while ($row = mysql_fetch_array($res))
// laat resultaat zien in tabel
        {
            echo '<tr>
                <td>'
.$row['voornaam'].'</td>
                <td>'
.$row['achternaam'].'</td>
                <td>'
.$row['adres'].'</td>
                <td>'
.$row['plaats'].'</td>
                <td>'
.$row['email'].'</td>
            </tr>'
;
        }


        echo '</table>';
// anders geef deze foutmelding
    } else {
        echo 'Geen data gevonden';
    }

?>


Ah fijn, daarmee krijg ik dus alle resultaten uit de database met de naam dennis.

Hoe kan ik hier een zoekveld voor maken dat als ik bijvoorbeeld intyp "Dennis" en dan op zoeken klik dat hij dan pas de zoekopdracht doet en dat hij dan die resultaten in een tabel laat zien.

Verder bijvoorbeeld ook dat als ik bijvoorbeeld "Michael" intyp dat hij in dat geval de resultaten voor "michael" laten zien mochten die bestaan, zo niet? die error.

Nogmaals, ik ben echt echt beginnend in php, maar ik vind het wel erg leuk! ik hoop dat jullie me hiermee kunnen helpen.

Dennis
 
PHP hulp

PHP hulp

20/11/2024 11:45:40
 
Joren de Wit

Joren de Wit

12/03/2007 12:16:00
Quote Anchor link
Formuliertje maken waar je een naam kunt invullen. Met je script controleren of het formulier verzonden is en de ingevulde naam uit het formulier ophalen. Vervolgens met deze naam je query uitvoeren.
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($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $naam = mysql_real_escape_string($_POST['naam']);
    $sql = "
        SELECT kolommen
        FROM tabel
        WHERE naam = '"
.$naam."'
        "
;
    
    // query uitvoeren en data echoen
}
else
{
    // formulier is niet verzonden
    // formulier tonen?

}
?>
 
Dick van de Wetering

Dick van de Wetering

12/03/2007 12:56:00
Quote Anchor link
Hoi,
Ik laat altijd bij zoekopdrachten alle tekens in hoofdletters plaatsen (upcase) van zowel het zoekwoord als bij de zoeknaam. Een kleine letter en hoofdletter zijn verschillen Dennis is een ander woord dan dennis.

Succes Dick
 
Robert Deiman

Robert Deiman

12/03/2007 13:09:00
Quote Anchor link
@Dick

Dat heb ik nog nooit eerder gehoord, de meeste doen het naar lowercase om te kijken of de naam al voor komt in de tabel.
Maargoed, naar upcase veranderen doe je eigenlijk hetzelfde.

@TS
Met de methode van Dick zoekt die 'Dennis, dennis, DeNnIs' enzovoort.. dus het maakt dan niet uit waar hoofdletters staan.
 
Joren de Wit

Joren de Wit

12/03/2007 13:10:00
Quote Anchor link
@Dick: dat is inderdaad wel zo netjes (alles in upper of lowercase), maar dat is lang niet altijd nodig. Het is namelijk voornamelijk afhankelijk van welke collatie je gebruikt voor je kolommen en dan nog worden vergelijkingen met operators als (<, > en =) altijd case-insensitive behandeld.

In het geval van de TS wordt er dus geen onderscheid gemaakt tussen 'Dennis' en 'dennis' of 'DENNIS'.

Zie ook de paragraaf over hoofdletter gevoeligheid uit de mysql handleiding.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 



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.