1

我试图将数据库中的多行输出到一个数组中,但它只选择最后一行,我该如何解决这个问题?

$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">

`

4

2 回答 2

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.'">';
 }
于 2013-10-12T21:18:47.057 回答
0

因为您在 while 循环结束后使用$sid$sname$url的值。这将始终选择最后一行。如果要选择行中的所有值,请在循环内声明数组。

于 2013-10-12T21:19:50.553 回答