2013-05-08 2 views
0

У меня есть база данных с тремя столбцами: product_id, product_name, product_image. Мне нужно запустить запрос, чтобы получить все значения, а затем создать список этих данных.получить значения из базы данных и использовать foreach

product_id | product_name | product_image | 
1   | ball   | ball.jpg  | 
2   | shirt  | shirt.jpg  | 
3   | car   | car.jpg  | 

Это код, я использую:

$q1 = $db->Execute("select * from products"); 

$q1_items = array(); 

while(!$q1->EOF){ 
    $q1_items[] = $q1->fields; 
    $q1->MoveNext(); 
} 
foreach ($q1_items as $items) { 
    echo '<a href="index.php?main_page=product_info&products_id='. $items['products_id'] .'"><img src="images/'. $items['products_image'].'" alt="'. $items['products_name'].'" title="'. $items['products_name'].'" /></a>\n'; 
} 

Это Z Ca сайт так $db->Execute уже определен и работает просто отлично.

Выход я ожидал, как это:

<a href="index.php?main_page=product_info&products_id=1"><img src="ball.jpg" alt="ball" title="ball" /></a> 
<a href="index.php?main_page=product_info&products_id=2"><img src="shirt.jpg" alt="shirt" title="shirt" /></a> 
<a href="index.php?main_page=product_info&products_id=3"><img src="car.jpg" alt="car" title="car" /></a> 

Однако, я получаю это:

<a href="index.php?main_page=product_info&products_id=1"><img src="ball.jpg" alt="ball" title="ball" /></a> 
<a href="index.php?main_page=product_info&products_id=1"><img src="shirt.jpg" alt="ball" title="ball" /></a> 
<a href="index.php?main_page=product_info&products_id=1"><img src="car.jpg" alt="ball" title="ball" /></a> 
<a href="index.php?main_page=product_info&products_id=2"><img src="ball.jpg" alt="shirt" title="shirt" /></a> 
<a href="index.php?main_page=product_info&products_id=2"><img src="shirt.jpg" alt="shirt" title="shirt" /></a> 
<a href="index.php?main_page=product_info&products_id=2"><img src="car.jpg" alt="shirt" title="shirt" /></a> 
<a href="index.php?main_page=product_info&products_id=3"><img src="ball.jpg" alt="car" title="car" /></a> 
<a href="index.php?main_page=product_info&products_id=3"><img src="shirt.jpg" alt="car" title="car" /></a> 
<a href="index.php?main_page=product_info&products_id=3"><img src="car.jpg" alt="car" title="car" /></a> 

В основном, дублирует всю строку для каждого изображения и изменяется только имя изображения , Что я делаю неправильно и как мне получить результат, который мне нужен?

+0

Что делает 'print_r ($ q1)' выход? – brbcoding

+0

Что делает запрос в phpmyadmin? Вы уверены, что вопрос в порядке? Возможно, «продукты» - это представление, в котором нет группы. – Robert

+0

$ q1_items [] = $ q1-> fields; - Возвращает массив & $ q1_items становится многомерным массивом ... для каждого из них нужно сделать для многомерного массива – user170851

ответ

0

Вы не должны использовать значение

foreach ($q1_items as $item => $items) { 
    echo '<a href="index.php?main_page=product_info&products_id='. $items['products_id'] .'"><img src="images/'. $items['products_image'].'" alt="'. $items['products_name'].'" title="'. $items['products_name'].'" /></a>\n'; 
}