No se si sera este el problema: estas utilizando un break, eso significa que cuando $valor sea igual a "Guardar", la ejecución del foreach se detendrá y no procesará los valores restantes del arreglo. En lugar de break deberías utilizar continue:
Código PHP:
<?php
...
foreach($_POST as $nombre_campo=>$valor)
{
if($valor=="Guardar")//El valor del botón de envío no nos interesa
continue;
$asignacion="\$".$nombre_campo."='".$valor."';";
....
}
O simplemente verificiar que if($valor!="Guardar"):
Código PHP:
<?php
...
foreach($_POST as $nombre_campo=>$valor)
{
if($valor !="Guardar") { //El valor del botón de envío no nos interesa
$asignacion="\$".$nombre_campo."='".$valor."';";
....
}
}
Además, podrías utilizar otra forma para recorrer los campos: en el formulario colocas como nombre de los campos que te interesan algo como tu_nombre[]. Y en el script php lo recorres:
Código PHP:
<?php
...
foreach($_POST['tu_nombre'] as $nombre_campo=>$valor)
{
$asignacion="\$".$nombre_campo."='".$valor."';";
.....
}
Asi no tenes que verificar cuales campos son los que no te interesan.
Saludos.