Database waarden 2 tabellen gelijk = plaatje tonen
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!
Als er eeen avatar is voor een id dan staat die in de kolom avatar, is er geen dan blijft die kolom leeg.
Nu is het volgende, dat dmv onderstaande code (uit mijn vorige forumbericht) een dropdown toont met gebruikers met deze ID.
Code (php)
1
2
3
4
5
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>";
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.
En je probleem is...?
hij moet gaan vergelijken met tabel B of de ID overeenkomt en een plaatje moet laten zien van de gebruiker.
Ik zie nog steeds het probleem niet.
in mijn code:
Code (php)
1
2
3
4
5
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>";
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.
De code die ik gaf is een sql query, dat weet je? Je weet ook hie je queries draait en de resultaten ophaalt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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>";
?>
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)
1
2
3
4
5
6
7
8
9
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'] . "'>";
}
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
Code (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
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>
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'?
en
- 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 :)