Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

while($row =mysql_fetch_assoc($result)) - Como foreach $row?


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.