Daar heb je een join voor nodig:
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.
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.
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.
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.
Ik zie nog steeds het probleem niet.
Waar laat ik de code die jij me gaf:
SELECT a.id, a.naam, b.avatar
FROM tabela a
LEFT JOIN tabelb b ON a.id = b.id
in mijn code:
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.
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?
J
Jordy F
09-09-2013 12:44
gewijzigd op 10-09-2013 12:00
Dat weet ik, onderstaande code gebruik ik namelijk voor het ophalen en plaatsen van gebruikers in de dropdown:
<?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.
[size=xsmall]
Toevoeging op 10/09/2013 11:33:41:[/size]
Ik kom dus niet echt verder als dit:
$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?
Via een ander forum heb ik nu onderstaande code:
<?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'?
<select name='deelnemers' onchange='copyId2textinput(this);'>
en
<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.
[size=xsmall]
Toevoeging op 12/09/2013 15:15:53:[/size]
Topic mag dicht, opgelost :)