在php中输出多行不起作用

时间:2013-10-12 21:12:51

标签: php html mysql

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

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

`

2 个答案:

答案 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 的值。这将始终选择最后一行。如果要选择行中的所有值,请在循环内声明数组。