Digamos que cada uma das linhas em seu banco de dados se pareça com isso...
[product_id][product_name][product_description][product_price]
Quando você atribui sua consulta, retorne a uma variável passada por
mysql_fetch_assoc()
usando um loop while, cada passagem isolará uma linha inteira. Dos quais você pode separar manualmente por referência de chave de matriz ($array['product_id']
) ou usando um loop foreach. Eu acho que o problema que você está tendo é que você está misturando isso. Mantendo o layout da tabela de exemplo acima em mente, você pode fazer algo como o seguinte:while ($tableRow = mysql_fetch_assoc($query)) { // Loops 3 times if there are 3 returned rows... etc
foreach ($tableRow as $key => $value) { // Loops 4 times because there are 4 columns
echo $value;
echo $tableRow[$key]; // Same output as previous line
}
echo $tableRow['product_id']; // Echos 3 times each row's product_id value
}
Veja esta linha em seu código:
if ($product['id'] == $id) { }
Acho que você provavelmente quis dizer
if ($row['id'] == $id) { }
em vez de.