[PHP] SQL resultaat id's -> landcode

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
PHP:
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
<?php
// selecteer alle wedstrijden
$sql = "select * from wedstrijden";
$result = mysql_query($sql);
    if (!$result) {
        echo "Kan query niet uitvoeren $sql<BR>";
        echo mysql_error();
        exit;
    }

// als er resultaten zijn doe iets
if ($myrow = mysql_fetch_array($result)) {
    ?>
    <table cellpadding=4 cellspacing=4 border=1>
    <tr>
        <td>HOME</td>
        <td>AWAY</td>
    </tr>

    <?php
    do {
        // home en away id bewaren
        $homeid = $myrow['id_land_home'];
        $awayid = $myrow['id_land_away'];

        // landcode bij homeid ophalen
        $sql_thuis = "select land_code from landen where land_id = $homeid";
        $result_thuis = mysql_query($sql_thuis);
            if (!$result_thuis) {
                echo "Kan query niet uitvoeren $sql_thuis<BR>";
                echo mysql_error();
                exit;
            }
        $myrow_thuis = mysql_fetch_array($result_thuis)
        $thuiscode = $myrow_thuis['land_code'];

        // landcode bij awayid ophalen
        $sql_away = "select land_code from landen where land_id = $awayid";
        $result_away = mysql_query($sql_away);
            if (!$result_away) {
                echo "Kan query niet uitvoeren $sql_away<BR>";
                echo mysql_error();
                exit;
            }
        $myrow_away = mysql_fetch_array($result_away)
        $awaycode = $myrow_away['land_code'];

        ?>
        <tr>
            <td>[img]<?=[/img]></td>
            <td>[img]<?=[/img]></td>
        </tr>
        <?php

    } while ($myrow = mysql_fetch_array($result));
    ?></table><?php
} else {
        echo "Geen wedstrijden aanwezig.";
}
?>

Relevante tabellen

landen (id, land_code)
wedstrijden (id_land_home, id_land_home)

Huidige situatie

In de tabel wedstrijden zitten dus 2 id's van landen. En in landen zit een landcode welke gebruikt wordt om een naam van een image samen te stellen bijv: 'NLD.gif'. Bovenin worden alle wedstrijden opgehaald en in de loop haal ik voor beide id's de landcode op zodat ik deze kan gebruiken om het plaatje te tonen.

Gewenste situatie

De query van de wedstrijden ophalen zo te maken dat de 'id_land_home' en de 'id_land_away' in het resultaat gelijk al de bijbehorende landcode zijn.

Dus resultaat (GER, NLD) ipv (1,2).

Waarom :?

De bovenstaande code werkt. Maar zoals je ziet zijn het twee extra query's binnen de loop om de bijbehorende landcodes op te halen. En alles in 1 query is natuurlijk veel _/-\o_ _/-\o_

[ Voor 10% gewijzigd door seamus21 op 22-02-2006 00:46 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan meerdere keren op dezelfde tabel joinen? :P
SQL:
1
2
3
SELECT land1.code AS land_home, land2.code AS land_away
FROM landen AS land1 INNER JOIN wedstrijden ON land1.id = wedstrijden.id_land_home
  INNER JOIN landen AS land2 ON land2.id = wedstrijden.id_land_away

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
-NMe- schreef op woensdag 22 februari 2006 @ 00:53:
Je kan meerdere keren op dezelfde tabel joinen? :P
SQL:
1
2
3
SELECT land1.code AS land_home, land2.code AS land_away
FROM landen AS land1 INNER JOIN wedstrijden ON land1.id = wedstrijden.id_land_home
  INNER JOIN landen AS land2 ON land2.id = wedstrijden.id_land_away
Ja dat kan. Werkt als een zonnetje :D TY

Always shoot for the moon. Even if you miss you will land among the stars...