Nueva pregunta

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");
}
}
?>
Etiquetas: Base de Datos - MySQL - PHP - PHP PDO - Pregunta 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
 
frjcbbae garagebible.com