我正在尝试将数据库中的多行输出到一个数组中,但它只选择最后一行,我该如何解决这个问题呢?
$getSkills = $db->query("SELECT * FROM _skills WHERE `chara_id` = '$cid'");
while ($skill = mysql_fetch_assoc($getSkills)) {
$sid = $skill['id'];
$sname = $skill['name'];
$url = $skill['url'];
}
$data = array('skills' => array( '<img id="'.$sid.'" class="skill" src="'.$url.'">','<img id="'.$sid.'" class="skill" src="'.$url.'">','<img id="'.$sid.'" class="skill" src="'.$url.'">','<img id="'.$sid.'" class="skill" src="'.$url.'">' ));
<div class="skill_images"><img id="3" class="skill" src="/img/skills/5.png">
`
答案 0 :(得分:2)
您需要附加到循环内的数组中。
$data['skills'] = array();
while ($skill = mysql_fetch_assoc($getSkills)) {
$sid = $skill['id'];
$sname = $skill['name'];
$url = $skill['url'];
$data['skills'][] = '<img id="'.$sid.'" class="skill" src="'.$url.'">';
}
答案 1 :(得分:0)
因为您在while循环结束后使用 $ sid , $ sname , $ url 的值。这将始终选择最后一行。如果要选择行中的所有值,请在循环内声明数组。