Pregunta:
Fecha: 24-11-2016 18:15:04
(En Español)
Actualización con PDO[Resuelta]
Saludos comunidad, mi problema es el siguiente, tengo un formulario cuyos input los cargo desde una base de datos en funcion del valor "buscar" que se recibe desde otro campo,, la idea es el usuario revise los datos y los actualice, en el formulario tengo una funcion javascript que pide confirmacion antes de enviar el formulario hace las redirecciones adecuadamente, sin embargo, no realiza ningun cambio en la base de datos, el formulario es este:<form class="form-horizontal" method="POST" action="actualizaru.php" onsubmit=" return enviar()">
<?php
$con = new PDO("mysql:host=localhost;dbname=marketpro", "root", "");
$sql = "SELECT * FROM usuarios WHERE usuario = '" .$buscar. "' ";
$stmt = $con->prepare($sql);
$results = $stmt->execute();
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
foreach ($rows as $row) {
?>
<div class="form-group">
<label for="direccion" class="col-sm-2 control-label">Dirección:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="direccion" placeholder="Direccion" name="direccion" value="<?php echo $row->direccion;?>">
</div>
</div>
<div class="form-group">
<label for="tipo" class="col-sm-2 control-label">Tipo:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="tipo" placeholder="Tipo" name="tipo" value="<?php echo $row->tipo;?>">
</div>
</div>
<div class="form-group">
<label for="contrasena" class="col-sm-2 control-label">Contraseña:</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="contrasena" placeholder="Contraseña" name="contrasena" value="<?php echo $row->contrasena;?>">
</div>
</div>
<div class="form-group">
<label for="sucursal" class="col-sm-2 control-label">Pertenece a:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="sucursal" placeholder="Pertenece A" name="sucursal" value="<?php echo $row->nombreSuc;?>">
</div>
</div>
<?php }
?>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Actualizar</button>
</div>
</div>
</form>
y el archivo actualizaru.php
<?php
if (isset($_POST["direccion"])) {
$direccion = $_POST["direccion"];
}
if (isset($_POST["tipo"])) {
$tipo = $_POST["tipo"];
}
if (isset($_POST["contrasena"])) {
$contraseña = $_POST["contrasena"];
}
if (isset($_POST["sucursal"])) {
$sucursal = $_POST["sucursal"];
}
$con = new PDO('mysql:host=localhost;dbname=marketpro', 'root', '');
$sql = " SELECT * FROM usuarios";
$stmt = $con->prepare($sql);
$results = $stmt->execute();
$rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
foreach ($rows as $row) {
if (($direccion == $row->direccion) AND ($tipo == $row->tipo) AND ($contraseña == $row->contrasena) ){
$sql2 = " UPDATE usuarios SET nombreSuc =:sucursal WHERE usuario =:buscar ";
$stmt2 = $con->prepare($sql);
$stmt2->bindParam(':sucursal', $sucursal, PDO::PARAM_STR);
$stmt2->bindParam(':buscar', $buscar, PDO::PARAM_STR);
$stmt2->execute();
header("Location: actualizacion.php");
}
}
?>
Votos: 0 -
Respuestas: 3 -
Vistas: 12
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 25-11-2016 06:36:35 Hola amigo,
te sugiero primero que leas esto
Saludos Votos: 0 - Link respuesta -
Fecha: 05-12-2016 11:02:20 $rows = $stmt->fetchAll(\PDO::FETCH_OBJ); para que usas eso??
no es suficiente con el foreach? Votos: 0 - Link respuesta -
Fecha: 05-12-2016 15:23:21 En realidad no porque si no utilizas esa instruccion no va a haber ningun arreglo que recorrer, el mismo se almacena en la variable $rows, luego, ya resolví el problema, en la consulta puse $sql2: $sql2 = " UPDATE usuarios SET nombreSuc =:sucursal WHERE usuario =:buscar ";
pero luego especifique solo $sql a la hora de ejecutarla:
$stmt2 = $con->prepare($sql); por lo que no hacía nada igual gracias a todos por participar .... Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
