Database waarden 2 tabellen gelijk = plaatje tonen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordy F

Jordy F

09/09/2013 10:17:36
Quote Anchor link
Goedemorgen,

De titel is misschien niet echt heel duidelijk, bij deze dus even een uitleg.

Ik heb 2 tabellen in mijn database, genoemd tabelA en tabelB.

TabelA heeft de waarden ID en NAAM
TabelB heeft de waarden ID en AVATAR (dit is een afbeelding in png/jpg met een random naam)

Nou zou ik graag willen dat deze tabellen worden vergeleken, als er een ID match is wordt de avatar van TabelB getoond.

Ik heb al gezocht maar kom er niet uit dat er een plaatje moet worden getoont.

Alvast bedankt voor jullie php kennis!
 
PHP hulp

PHP hulp

14/05/2024 06:23:39
 
Erwin H

Erwin H

09/09/2013 10:21:15
Quote Anchor link
Daar heb je een join voor nodig:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT a.id, a.naam, b.avatar
FROM tabela a
LEFT JOIN tabelb b ON a.id = b.id

Als er eeen avatar is voor een id dan staat die in de kolom avatar, is er geen dan blijft die kolom leeg.
 
Jordy F

Jordy F

09/09/2013 10:24:12
Quote Anchor link
Bedankt voor je snelle reactie Erwin,

Nu is het volgende, dat dmv onderstaande code (uit mijn vorige forumbericht) een dropdown toont met gebruikers met deze ID.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
echo "<select name='deelnemers' onchange='copyId2textinput(this);'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";


Op het moment dat hier dus de overeenkomende ID wordt geselecteerd, wil ik graag de 'Avatar' laten zien.
 
Erwin H

Erwin H

09/09/2013 11:00:45
Quote Anchor link
En je probleem is...?
 
Jordy F

Jordy F

09/09/2013 11:07:47
Quote Anchor link
Op het moment dat ik via de bovenstaande dropdown een gebruiker kies uit tabel A als het ware,

hij moet gaan vergelijken met tabel B of de ID overeenkomt en een plaatje moet laten zien van de gebruiker.
 
Erwin H

Erwin H

09/09/2013 11:26:43
Quote Anchor link
Ik zie nog steeds het probleem niet.
 
Jordy F

Jordy F

09/09/2013 11:36:01
Quote Anchor link
Waar laat ik de code die jij me gaf:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT a.id, a.naam, b.avatar
FROM tabela a
LEFT JOIN tabelb b ON a.id = b.id


in mijn code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
echo "<select name='deelnemers' onchange='copyId2textinput(this);'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";


Ben misschien niet helemaal duidelijk maar weet niet hoe ik het anders moet omschrijven.
 
Erwin H

Erwin H

09/09/2013 11:39:55
Quote Anchor link
Het begint er al mee dat je nu eindelijk een vraag stelt.... dat helpt al iets natuurlijk.

De code die ik gaf is een sql query, dat weet je? Je weet ook hie je queries draait en de resultaten ophaalt?
 
Jordy F

Jordy F

09/09/2013 12:44:30
Quote Anchor link
Dat weet ik, onderstaande code gebruik ik namelijk voor het ophalen en plaatsen van gebruikers in de dropdown:

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            
mysql_connect('', '', '');
mysql_select_db ("");

$sql = "SELECT id,name FROM jos_users";
$result = mysql_query($sql);


echo "<select name='deelnemers' onchange='copyId2textinput(this);'>";
while ($row = mysql_fetch_array($result)) {

      
    echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}

echo "</select>";


?>


Dit gedeelte lukt me wel, alleen het toevoegen van jou query met daarna het vergelijken lukt me niet.


Toevoeging op 10/09/2013 11:33:41:

Ik kom dus niet echt verder als dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$sql = "SELECT id, naam, avatar
FROM jos_users
LEFT JOIN jos_comprofiler ON jos_users.id = jos_comprofiler.id";

$result = mysql_query("SELECT avatar FROM jos_comprofiler");
if(mysql_num_rows($result) == 1)
{
echo "<img='" . $row['avatar'] . "'>";
}


Hoe krijg ik nu na een ID match van de 2 tabellen het plaatje te zien?
Gewijzigd op 10/09/2013 12:00:13 door Jordy F
 
Jordy F

Jordy F

12/09/2013 10:25:54
Quote Anchor link
Via een ander forum heb ik nu onderstaande code:

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
<?php          
mysql_connect('', '', '');
mysql_select_db ("");

$sql = "SELECT u.id, name, avatar FROM jos_users AS u LEFT JOIN jos_comprofiler USING(id)";
$result = mysql_query($sql);

echo "<div id='imgContainer'></div>";

echo "<select name='deelnemers' onchange='showAvatar(this.value);'>";
$avatars = array();
while ($row = mysql_fetch_array($result)) {
    if($row['avatar']){
        $avatars[$row['id']] = $row['avatar'];
}

echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}

echo "</select>";

?>

<script>
    var avatars = <?=json_encode($array)?>;
    //alert(avatars[5]);
    var avatarContainer = document.getElementById('imgContainer');
    function showAvatar(id) {
        if(avatars[id]==undefined) return false;
        avatarContainer.innerHTML = '<img src="/path/'+avatars[id]+'" />';
    }
</script>


Deze werkt nog niet optimaal, zit nog met een aantal dingen:

- Kan ik 2 maal gebruik maken van 'Onchange'?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select name='deelnemers' onchange='copyId2textinput(this);'>


en

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select name='deelnemers' onchange='showAvatar(this.value);'>


- De avatar wordt niet uitgelezen omdat deze in tabel 'jos_comprofiler' staat en op dit moment geloof ik wordt aangeroepen uit 'jos_users'.

Kan iemand mij met deze laatste stappen helpen?

Alvast bedankt.


Toevoeging op 12/09/2013 15:15:53:

Topic mag dicht, opgelost :)
 



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.