大家好,
我有一个代码,可以从数据库中读取用户并将其放入下拉菜单中:
<?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>";
?>
现在我有另一个名为jos_comprofiler的数据库,它还有一个ID和一个头像(图像)。
我想知道是否有人给我一些建议来比较 2 张表中的 ID,然后显示图片。
因此,例如,如果我单击下拉列表中的用户,它必须查看是否与其他表的 ID 匹配,如果有,则显示"头像"中的图片。
谢谢你的帮助,请原谅我的英语不好!
可以是:
SELECT `ju`.`id`, `ju`.`name`, `jcp`.`avatar` FROM `jos_users` as `ju`
LEFT JOIN `jos_comprofiler` as `jcp` ON (`ju`.`id` = `jcp`.`id`)
这里我们使用左连接,这意味着jos_comprofiler不需要为每个jos_users都存在。在这些情况下,字段"头像"将为 NULL。
然后,您有元素"头像",它可以是 NULL 或值。
if($row['avatar'] != NULL) echo "<img src="".$row['avatar']."">";
或:)祝你好运
会有一些方法,但我会展示快速的方法。
<?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($avatars)?>;
//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>
<>
这应该可以工作,但对您的代码进行了一些修改:img 路径等。