2013-10-12 3 views
1

Я пытаюсь вывести несколько строк из базы данных в массив, но это только выбор последней строки, как я могу это исправить?вывод нескольких строк в php не работает

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

`

+1

Часть '$ data' не находится в цикле и как таковая будет получать данные только из последней строки. – datasage

+0

Вы используете какой-либо метод oop в первой строке, а затем функцию mysql_ во второй строке. – Galen

ответ

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.'">'; 
} 
+0

Он работает, спасибо за помощь –

0

Поскольку вы используете значения $ ИДС, $ SNAME, $ URL после цикла в то время как закончилось. Это всегда будет выбирать последнюю строку. Если вы хотите выбрать все значения в строке, объявите массив внутри цикла.

Смежные вопросы