Efectivamente has puesto tu echo
declaración después del ciclo:
while($row = mysqli_fetch_array($result));
^ this is the problem
echo $row['price'];
... es lo mismo que:
while($row = mysqli_fetch_array($result)) {}
echo $row['price'];
Y después del ciclo $row
será false
por lo que no se repetirá nada.
Quieres:
while($row = mysqli_fetch_array($result))
echo $row['price'];
o (mejor ya que evitará este tipo de errores...):
while($row = mysqli_fetch_array($result)) {
echo $row['price'];
}
Y debería usar una declaración preparada para evitar el problema de inyección de sql que tiene ahora.