Data uit 2 verschillende tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan s

Daan s

02/11/2012 19:17:54
Quote Anchor link
Hi allemaal.

Ik had een klein (of groot) vraagje.


Ik heb 2 tabbellen maar ik krijg ze niet gekoppelt.
Dit is tabel 1
Afbeelding
Hier aangegeven een tabel met bepaalde meldingen er in.
De Plaats colom heeft alleen een bepaald nummer.
In de andere tabel staan alle plaatsen van nederland
Afbeelding

Momenteel krijg ik deze uitdraai van gegevens


Afbeelding

Hier zie je de nummers op de plaats van de plaatsen.

Dit is het script van deze pagina

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

$datum
= date("j/n/Y");
 
 mysql_connect("127.0.0.1", "admin", "***");
 mysql_select_db("Database");
 $data = mysql_query("SELECT * FROM Meldingen Where Datum = '$datum' ORDER BY Tijd")
 or die(mysql_error());
 
 while($info = mysql_fetch_array( $data ))
 {

 Print "<tr>";
 Print "<td>".$info['Datum'] . "</td> ";
  Print "<td>".$info['Tijd'] . "</td> ";
    Print "<td>".$info['Plaats'] . "</td> ";  // Hier wil ik niet het nummer maar de plaats :)
    echo '<td>';
     echo substr( $info['thv'], 0, 17);
     echo '';
echo '</td>';
        
                   echo '<td>';
     Print '<img src=images/Meld/'.$info['soort'] .'.jpg>';
     echo '</td>';

    
 }


 ?>


En dit is de andere pagina van de website die ik even in elkaar gezet heb om te testen of deze wel een uitput gaf

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
<?php
  $ID
= $_GET["ID"];
 // Connects to your Database
 mysql_connect("127.0.0.1", "admin", "**") or die(mysql_error());
mysql_select_db("**") or die(mysql_error());
$ID = stripslashes($ID);
$ID = mysql_real_escape_string($ID);
$data = mysql_query("SELECT * FROM Plaatsen WHERE ID = '$ID'")
 or die(mysql_error());

 while($info = mysql_fetch_array( $data ))
 {


 Print "<option value=>" .$info['Plaats'] . "</option>";
 

 }

 
 ?>


Dus eigelijk de vraag: hoe kan ik zorgen dat deze niet het nummer van de plaats geeft maar de plaatsnaam uit de andere tabel haalt en deze laat zien.


Met vriendelijke groet,


Daan
 
PHP hulp

PHP hulp

22/11/2024 20:29:57
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/11/2012 19:35:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT m.datum, m.tijd, p.plaats
FROM meldingen AS m
LEFT JOIN plaatsen AS p
ON
    m.plaats = p.id
WHERE datum = '2012-11-02'
ORDER BY tijd
Gewijzigd op 02/11/2012 20:33:57 door Ger van Steenderen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2012 19:51:09
Quote Anchor link
"SELECT * FROM Meldingen,Plaatsen WHERE Datum = '$datum' AND Meldingen.ID = Plaatsen.ID ORDER BY Tijd"
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/11/2012 19:57:19
Quote Anchor link
Jongens, stop nu eens met dat SELECT * in joins
@Frank, als je goed in in het openings topic kijkt zie dat plaats weleens leeg kan zijn, en dan kan je geen INNER JOIN gebruiken.
Gewijzigd op 02/11/2012 20:00:45 door Ger van Steenderen
 
Daan s

Daan s

02/11/2012 20:03:33
Quote Anchor link
Stel ik verander de SQL_Query - Wat moet ik dan in het script veranderen om de plaats te krijgen ipv het nummer in de database -> Of kijk ik nu niet goed?

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

$datum
= date("j/n/Y");
 
 mysql_connect("127.0.0.1", "admin", "***");
 mysql_select_db("Database");
 $data = mysql_query("SELECT * FROM Meldingen Where Datum = '$datum' ORDER BY Tijd")
 or die(mysql_error());
 
 while($info = mysql_fetch_array( $data ))
 {

 Print "<tr>";
 Print "<td>".$info['Datum'] . "</td> ";
  Print "<td>".$info['Tijd'] . "</td> ";
    Print "<td>".$info['Plaats'] . "</td> ";  // XX
    echo '<td>';
     echo substr( $info['thv'], 0, 17);
     echo '';
echo '</td>';
        
                   echo '<td>';
     Print '<img src=images/Meld/'.$info['soort'] .'.jpg>';
     echo '</td>';

    
 }


 ?>


Afbeelding

Afbeelding
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2012 20:06:41
Quote Anchor link
Ger, dat sterretje kun je vervangen voor kolomnamen. Het is maar net wat je allemaal wilt zien toch. en ik haal er niet uit dat plaats weleens leeg kan zijn. Bovendien als dat gebeurt wat wil je de gebuiker dan nog laten zien? Jij zou hier een leftjoin gebruiken begrijp ik?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/11/2012 20:09:49
Quote Anchor link
Door de (left) join koppel je de twee tabellen aan elkaar, probeer de query maar eens uit in phpmyadmiin dan zie je het resultaat. Simpel gezegd maak je door de de join 1 'tabel' van 2 tabellen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2012 20:14:10
Quote Anchor link
Ja, je hebt gelijk. Nog even naar de eerste post gekeken. Left Join is beter. Maar vanwaar de antipathie tegen het sterretje? omdat je dan niet alle kolommen zou gebruiken?

Toevoeging op 02/11/2012 20:22:52:

Daan: de query zou dus moeten zijn zoals Ger dat aangeeft. waar er wel een spatie moet tussen ASm dus AS m

Toevoeging op 02/11/2012 20:29:27:

dit laat alle kolommnamen en velden zien van de eerste rij. de velden kun je ook laten zien met $data['Plaats'] etc. maar het is belangrijk dat je goed begrijpt WAT een query terug geeft. zoals Ger al zei kun je de query ook in phpmyadmin testen onder het tabje SQL

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($info = mysql_fetch_array( $data )) {
  foreach($data as $key => $value)
    echo $key.': '.$value.'<br/>';
}

?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/11/2012 20:29:52
Quote Anchor link
Geloof maar dat ik niet de enige ben met antipathie daartegen. Je gebruikt dus wel alle kolommen terwijl je ze niet nodig hebt, in ts zijn voorbeeld bv de id en provincie in tabel plaatsen. Maar die id is precies de reden om het niet te doen, want dan wordt met een mysql_fetch_assoc $row['id'] altijd de id van de plaats.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2012 20:40:34
Quote Anchor link
Right nooit aan gedacht. ik gebruik zelf zo veel mogelijk unieke kolomnamen en dan kom je ook niet gauw op het probleem. Maar je argumenten zijn duidelijk. Dank je Ger.
 



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.