Buenas tardes a todos,
Soy novato con php y hasta ahora me he podido apañar yo solo pero he llegado en un punto que no veo que estoy haciendo mal. Puede que vosotros veáis lo que yo no he conseguido ver aun, ya me diréis.
Problema: Tengo un formulario que a través de POO me hace un update a una tabla. Resulta que realmente el update lo está haciendo pero sustituyendo todos los valores que le paso por formulario como vacíos. De manera que parece que realmente sí que está haciendo el update pero no como debería. No sé si es el orden en que tengo situadas las instrucciones.
Nota: Recupera correctamente los valores del producto que se selecciona. El problema solo esta cuando se hace el update.
Nota 2: No devuelve ningún error.
A mi parecer, creo que en algún momento se pierden los valores, pero no entiendo el por qué.
Gracias por vuestro tiempo : )
Código:
Código PHP:
Ver original<?php
$db = ASDatabase::getInstance();
// Variable que envio para entrar en el producto pertinente
$idProd= $_POST['form_idProd'];
$result = $db->select("SELECT intContador, strTipo FROM `tblcategorias` ORDER BY tblcategorias.strTipo ASC");
$editarProd = $db->select(
"SELECT * FROM `tblprod` WHERE `intContador` = :id",
);
foreach($editarProd as $InfoProd) {
$id= $InfoProd['intContador'];
$nom = $InfoProd['strProd'];
$tipus = $InfoProd['idTipo'];
$url = $InfoProd['strUrl'];
$fort = $InfoProd['intFuerte'];
$imatge = $InfoProd['strImagen'];
$desc = $InfoProd['strDescripcion'];
$fecha = $InfoProd['fchFecha'];
}
include 'templates/menu-izq-admin.php';
?>
<div class="span9 profile-details-wrapper">
<!-- main content here -->
<!------------------------------------ INICIO FORMULARIO -------------------------------------------->
<form class="form-horizontal" id="form-editar" name="form-editar" action="prod-lista.php" method="post">
<fieldset>
<!-- Form Name -->
<legend><?php echo "EDITAR: "; ?></legend>
<!-- INICIO NOMBRE -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="nom">
<?php echo "Nombre"; ?>
</label>
<div class="controls col-lg-8">
<input id="new_nom" name="new_nom" type="text" placeholder="Introduce el nombre..." class="input-xlarge form-control" value="<?php echo $nom ?>">
</div>
</div>
<!-- FIN NOMBRE -->
<!-- INICIO TIPO -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="tipo">
<?php echo "Qué es?"; ?>
</label>
<div class="controls col-lg-8">
<select id="new_tipo" name="new_tipo" class="form-control" style="width: 100%;">
<option value="1"
<?php if (!(strcmp(1, htmlentities($tipus, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>Servicio</option>
<option value="2"
<?php if (!(strcmp(2, htmlentities($tipus, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>Producto</option>
<option value="3"
<?php if (!(strcmp(3, htmlentities($tipus, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>Nada</option>
</select>
</div>
</div>
<!-- FIN TIPO -->
<!-- URL YOUTUBE -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="url">
<?php echo "URL de Youtube"; ?>
</label>
<div class="controls col-lg-8">
<input id="new_url" name="new_url" type="text" placeholder="Introduce la url del vídeo" class="input-xlarge form-control" value="<?php echo $url ?>">
</div>
</div>
<!-- FIN URL YOUTUBE -->
<!-- INICIO FUERTE-->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="fuerte">
<?php echo "Fuerte"; ?>
</label>
<div class="controls col-lg-8">
<select id="new_fuerte" name="new_fuerte" class="form-control" style="width: 100%;">
<option value="0"
<?php if (!(strcmp(0, htmlentities($fort, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>0</option>
<option value="1"
<?php if (!(strcmp(1, htmlentities($fort, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>1</option>
<option value="2"
<?php if (!(strcmp(2, htmlentities($fort, ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>>2</option>
</select>
</div>
</div>
<!-- FIN FUERTE-->
<!-- INICIO IMAGEN -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="imagen">
<?php echo "Imagen"; ?>
</label>
<div class="controls col-lg-8">
<input id="new_imagen" name="new_imagen" type="text" placeholder="Selecciona una imagen" class="input-xlarge form-control" value="<?php echo $imatge ?>">
</div>
</div>
<!-- FIN IMAGEN -->
<!-- DESCRIPCIÓN -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="desc">
<?php echo "Descripción"; ?>
</label>
<div class="controls col-lg-8">
<textarea id="new_desc" name="new_desc"><?php echo $desc ?></textarea>
</div>
</div>
<!-- FIN DESCRIPCIÓN -->
<!-- Button -->
<div class="control-group form-group">
<label class="control-label col-lg-4" for="subir"></label>
<div class="controls col-lg-8">
<button id="subir" name="subir" class="btn btn-primary" type="submit">
<?php echo "Actualizar"; ?>
</button>
<a href="prod-lista.php">
<button id="atras" name="atras" class="btn btn-primary" type="button" style="background-color:red">
<?php echo "Volver atrás"; ?>
</button>
</a> </div>
</div>
<input type="hidden" name="MM_update" value="form-editar">
</fieldset>
</form>
<!------------------------------------ FIN FORMULARIO -------------------------------------------->
<?php
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form-editar")) {
$new_nom = $_POST['new_nom'];
$new_tipo = $_POST['new_tipo'];
$new_url = $_POST['new_url'];
$new_fuerte = $_POST['new_fuerte'];
$new_imagen = $_POST['new_imagen'];
$new_descripcion = $_POST['new_desc'];
$db->update(
'tblprod',
array ( "strNom" => $new_nom, "idTipo" => $new_tipo,
"strUrl" => $new_url,
"intFuerte" => $new_fuerte,
"strImagen" => $new_imagen,
"strDescripcion" => $new_descripcion ),
"intContador = :id",
);
}
?>