meerder tabellen koppelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan van Wilsum

Johan van Wilsum

28/05/2007 19:16:00
Quote Anchor link
Hallo allemaal :),

Ik heb in mijn database 'postcode' meerder tabellen en deze worden aan elkaar gekoppeld. Althans dat moet gebeuren want het lukt me niet:p Wel heb ik wat zitten rommelen en misschien kan het veel beter. Ik had hiervoor alles in een db zitten, alleen dat duurt het langer, deze oplossing moet sneller werken.

script:

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
//Connect to MySQL Server
    mysql_connect($dbhost, $dbuser, $dbpass);
    //Select Database
    mysql_select_db($dbname) or die(mysql_error());
    // Retrieve data from Query String

    // select fields form different tabels

    $sql = "SELECT t1.straat, t1.plaats, t2.id, t2.straat, t3.id, t3.woonplaats FROM postcode AS t1, straat AS t2, woonplaats AS t3 WHERE t1.postcode = '". $_GET['postcode'] ."'";
    $res = mysql_query($sql);
    $row = mysql_fetch_array($res);
    
    // echo results
    echo "postcode: " . $row['postcode'] . "<br />";
    echo "straat" . $row['straat'] . "<br />";
    echo "plaats" . $row['plaats'] . "<br />";
    echo "provincie" . $row['provincie'] . "<br />";
?>



database:

* db postcode*

- postcode (tabel)

- postcode
- straat
- plaats
- provincie

- straat (tabel)
- id
- straat

- plaats (tabel)
- id
-plaats

- provincie (tabel)
- id
- provincie

Werking:

Misschien nog even toe lichten in tabel 'postcode' is straat het id van tabel 'straat' etc...
 
PHP hulp

PHP hulp

20/01/2025 23:49:32
 
Jan Koehoorn

Jan Koehoorn

28/05/2007 19:22:00
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
12
<?php
    $sql
= "
        SELECT p.postcode, s.straat, p.plaats, pr.provincie
        FROM postcode AS p, straat AS s, plaats AS p, provincie AS pr
        WHERE
            p.straat = s.id
        AND
            p.plaats = p.id
        AND
            p.provincie = pr.id
        "
;
?>

Zo koppel je in ieder geval je tabellen. Als je specifieke records wilt selecteren, moet je je WHERE condition nog verder uitbreiden.
 
Johan van Wilsum

Johan van Wilsum

28/05/2007 19:51:00
Quote Anchor link
dank je voor je reactie! In zo verre heb ik momenteel dit, kan ik de straat niet weergeven. Wat kan ik het beste doen?

$sql = "SELECT t1.postcode, t1.straat, t2.id, t2.straat FROM postcode AS t1, straat AS t2 WHERE t1.postcode = '3555TB'";

$res = mysql_query($sql) or die (mysql_error());

echo $res['t1.straat'];
 
Johan van Wilsum

Johan van Wilsum

28/05/2007 19:57:00
Quote Anchor link
En is het sneller om JOIN te gebruiken?
mod-edit::
Bumpen
Twee of meer keer achter elkaar in je eigen topic posten heet bumpen. Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het Afbeelding knopje om je tekst aan te passen indien nodig.
Gewijzigd op 01/01/1970 01:00:00 door Johan van Wilsum
 
Jan Koehoorn

Jan Koehoorn

28/05/2007 20:26:00
Quote Anchor link
Johan van Wilsum schreef op 28.05.2007 19:51:
dank je voor je reactie! In zo verre heb ik momenteel dit, kan ik de straat niet weergeven. Wat kan ik het beste doen?

$sql = "SELECT t1.postcode, t1.straat, t2.id, t2.straat FROM postcode AS t1, straat AS t2 WHERE t1.postcode = '3555TB'";

$res = mysql_query($sql) or die (mysql_error());

echo $res['t1.straat'];

Tips:

1) schrijf je query's netjes uit, met inspringen. Dat debugt gemakkelijker.
2) verzin betere aliassen dan t1, t2
3)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    $sql
= "
        SELECT p.postcode, s.straat
        FROM
            postcode AS p, straat AS s
        WHERE p.postcode = '3555TB'
        AND p.straat = s.id"
;
?>
 
Johan van Wilsum

Johan van Wilsum

28/05/2007 20:44:00
Quote Anchor link
Tanks, ik zal het edit knop je gebruiken.

Het volgende werk, maar zodra ik de plaats erbij wil gaan doen gaat het mis. Het volgende het ik gedaan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sql
= "
            SELECT p.postcode,p.plaats, s.straat
            FROM
            postcode AS p, straat AS s, plaats AS w
            WHERE p.postcode = '3555TB'
            AND p.straat = s.id
                     AND p.plaats = w.id
                     LIMIT 0,1"
;
?>

Wat kan ik doen?
Gewijzigd op 01/01/1970 01:00:00 door Johan van Wilsum
 
Klaasjan Boven

Klaasjan Boven

28/05/2007 21:02:00
Quote Anchor link
SELECT
p.postcode,
w.plaats,
s.straat
FROM
postcode AS p,
straat AS s,
plaats AS w
WHERE
p.postcode = '3555TB'
AND
p.straat = s.id
AND
p.plaats = w.id

zoiets?
 
Johan van Wilsum

Johan van Wilsum

28/05/2007 21:12:00
Quote Anchor link
Het werkt nu wel maar het is zo zwaar of zo traag dat mijn server steed chrased :(
Gewijzigd op 01/01/1970 01:00:00 door Johan van Wilsum
 



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.