Nueva pregunta

Pregunta:

Fecha: 28-03-2017 06:41:23 (En Español)

Error: Trying to get property of non-object in. Traer dato para actualizar[Resuelta]

Buenas, tengo un error al traer un dato de la bases de datos para acutalizarlo. Lo que no entiendo es por que me sale el error si tengo otro dato de otra tabla con el mismo procedimiento y me funciona.

Este es el codigo donde listas los prestamos y me da la opcion de editar(actualizar) use prestamo pero en ese prestamo tiene una llave forenea que es el cliente.

<?php


require('../conexion_datos.php');
include('../menu/menu.php');


extract ($_REQUEST);


$sql="SELECT id_prestamo, fecha, monto, forma_de_pago, fiador, cliente.cedula,cliente.nombre, cliente.apellido from prestamo
inner join cliente
on prestamo.fiador=cliente.id_cliente
ORDER BY id_prestamo ASC";

$consulta=$mysqli->query($sql);

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Prestamos</title>
    <meta name="viewport" content="wid=device-wid, user-scalable=no, initial-scale=1.0, minium-scale=1.0">
    <!--agrego boostrap-->

    <link rel="stylesheet" type="text/css" href="../menu/menu.css">
    <link rel="stylesheet" type="text/css" href="../menu/paginacion.css">
    <link rel="stylesheet" type="text/css" href="../general.css">
</head>
<body>
    <div class="container" >
        <br>
        <div class="panel panel-success">
            <div class="panel-heading" align="center"><h3>PRESTAMOS</h3></div>
            <div class="panel-body">

                <!--barra de busqueda-->

                <form action="busca_cuenta.php" class="navbar-form navbar-center" role="search" method="POST">

                   <b>Prestamo: </b>

                   <div class="form-group">
                    <input type="text" class="form-control" placeholder="Ingrese Prestamo..." name="prestamo" onkeypress="return">

                    <button type="submit" class="btn btn-default" name="enviar" >Buscar</button>

                </div>
            </form>
            <div class="row" align="center">
                <button onclick="location='nuevo_prestamo.php'"  class="btn btn-success"  >
                    Nuevo prestamo
                </button></div>
                <br>

                <!--      clase para colocar tabla responsive-->
                <div class="table-responsive">
                    <table class="table  table-bordered  table-hover">
                        <tr class="active">

                            <th>Cedula</th>
                            <th>Nombre</th>
                            <th>Apellido</th>
                            <th>Monto Prestamo</th>
                            <th>No Cuotas</th>
                            <th>Interes %</th>
                            <th>Fecha Prestamo</th>
                            <th>Fiador</th>
                            <th>Forma de pago</th>
                            <th>Saldo actual</th>


                             <th>Opciones</th>


                     </tr>
                     <?php
                     while ($prestamo=$consulta->fetch_object())
                     {
                      ?>

                      <tr>
                        <td><?php echo $prestamo->cedula?></td>
                        <td><?php echo $prestamo->nombre?></td>
                        <td><?php echo $prestamo->apellido?></td>
                        <td><?php echo $prestamo->monto?></td>
                        <td></td>
                        <td></td>
                        <td><?php echo $prestamo->fecha?></td>
                        <td><?php echo $prestamo->nombre." ".$prestamo->apellido." ".$prestamo->cedula?></td>
                        <td><?php echo $prestamo->forma_de_pago?></td>
                        <td></td>

                        <?php
}

                         ?>

                        <td align="center"><a href="edita_prestamo.php?id_prestamo=<?php echo $prestamo->id_prestamo?>"><span class="glyphicon glyphicon-check" title="Editar"></span></a>
                            &nbsp;

                            <a href="eliminar_prestamo.php?id_prestamo= <?php echo $prestamo->id_prestamo?>"><span class="glyphicon glyphicon-remove" title="Eliminar"></span></a></td>



                        </tr>

                    </table>

                    </div>



                </div>
            </div>
        </div>
        </div>

        <!--Paginacion-->

        <div class="container-fluid" align="center">
            <nav>
                <ul class="paginacion">
                   <!--caracteres de flecha-->
                   <li class="disabled"><a href="#">&laquo;</a></li>
                   <li class="active"><a href="#">1</a></li><!--activamos la pagina 1-->
                   <li><a href="">2</a></li>
                   <li><a href="">3</a></li>

                   <li><a href="#">&raquo;</a></li>

               </ul>
           </nav>
       </div>

   </body>
   </html>


Este es el formulario para actualizar el prestamo pero me sale error: Trying to get property of non-object in.

<?php
require('../conexion_datos.php');

include('../menu/menu.php');


extract($_REQUEST);

    $sql="SELECT p.id_prestamo, p.fecha, p.monto, p.forma_de_pago, p.fiador, c.cedula, c.nombre, c.apellido from prestamo p, cliente c
    where (c.id_cliente=p.fiador)
    and (p.id_prestamo='".$_REQUEST['id_prestamo']."')";

$prestamos=$mysqli->query($sql);
$prestamo=$prestamos->fetch_object();


$sqlc="select * from cliente";
$cliente=$mysqli->query($sqlc);


?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Actualizar Prestamo</title>
    <meta name="viewport" content="wid=device-wid, user-scalable=no, initial-scale=1.0, minium-scale=1.0">

    <link rel="stylesheet" type="text/css" href="../menu/menu.css">
    <link rel="stylesheet" type="text/css" href="../menu/paginacion.css">

    <script>
    function numeros(e){
      tecla = (document.all) ? e.keyCode : e.which;

    //Tecla de retroceso para borrar, siempre la permite
    if (tecla==8){
      return true;
    }

    // Patron de entrada, en este caso solo acepta numeros
    patron =/[0-9]/;
    tecla_final = String.fromCharCode(tecla);
    return patron.test(tecla_final);
  }
</script>
<script>
  function letras(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[A-Za-z\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
  }
</script>


</head>
<body >
    <div class="container">
        <br>
        <div class="panel panel-success" align="center">
            <div class="panel-heading"><h3>Actualizar Prestamo</h3>
            </div>


            <div class="panel-body">

               <form class="form-horizontal" action="validar_actualizar_prestamo.php" style="margin:0 auto">

  <div class="form-group">
    <label class="col-lg-4 control-label">Cliente</label>
    <div class="col-lg-4">
     <select name="fiador" id="fiador" class="form-control">
  <option value="0">Seleccione</option>
 <?php
 while ($clientes=$cliente->fetch_object()) {
   ?>
 <option value="<?php echo $prestamo->id_cliente ?>"> 
<?php echo $clientes->nombre." ".$clientes->apellido."--".$clientes->cedula; ?>
 </option>
 <?php
}
?>
</select>
    </div>
  </div>


    <div class="form-group">
    <label class="col-lg-4 control-label">Monto</label>
    <div class="col-lg-4">

<!--aqui es donde no me muestra el monto q tiene y sale el error-->
      <input type="text" class="form-control" id="monto" placeholder="Monto" onkeypress="return numeros(event)" required name="monto" value="<?php echo $prestamo->monto?>" />
    </div>
  </div>

    <div class="form-group">
    <label class="col-lg-4 control-label">Fecha</label>
    <div class="col-lg-4">
      <input type="date"  name="fecha" id="fecha" value="<?php echo $prestamo->fecha?>" required/>
      </input>
    </div>
  </div>

    <div class="form-group">
    <label class="col-lg-4 control-label">Modo de pago</label>
    <div class="col-lg-4">
    <select name="formapago" id="formapago">
    <option value="0">Seleccione</option>
    <?php
  /*   while ($pagos=$formapago->fetch_object())
     {*/
      if ($prestamo->forma_de_pago=="Semanal")
      {
      ?>

          <option value="Semanal" selected="selected">Semanal</option>
          <option value="Quincenal">Quincenal</option>
          <option value="Mensual">Mensual</option>
      <?php
      }
       if ($prestamo->forma_de_pago=="Quincenal")
      {
      ?>

          <option value="Quincenal" selected="selected">Quincenal</option>
          <option value="Semanal">Semanal</option>
          <option value="Mensual">Mensual</option>
      <?php
      }
      if ($prestamo->forma_de_pago=="mensual"){
      ?>
          <option value="Semanal" >Semanal</option>
      <option value="Quincenal" >Quincenal</option>
          <option value="Mensual" selected="selected">Seleccione</option>
      <?php
      }
      ?>
        </select>
    </div>
  </div>

  <br>
  <div class="row col-md-offset-1">
<button type="submit" name="actualizar" class="btn btn-success col-xs-12 col-md-2 col-md-offset-1">Actualizar</button>

<button type="reset" name="limpiar" class="btn btn-primary col-xs-12 col-md-2 col-md-offset-1 ">Limpiar</button>

<button type="button" onclick="location='prestamos.php'" class="btn btn-danger col-xs-12 col-md-2 col-md-offset-1">Cancelar</button>
</div>
<input name="id_prestamo" type="hidden" value="<?php echo $_REQUEST['id_prestamo']?>"></input>
  </form>
  </div>
  </body>
  </html>


Etiquetas: MySQL - PHP - phpMyAdmin - Pregunta Votos: 0 - Respuestas: 4 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 28-03-2017 11:26:58 Hola, por favor comparte el mensaje de error completo para ver la linea donde ocurre el mismo   Votos: 1 - Link respuesta
     
  • Fecha: 28-03-2017 16:22:42 Hola, pues ahi en el codigo esta pero te lo escribo especificamente en donde es:

    En value donde llamo el monto del prestamo
    <input type="text" class="form-control" id="monto" placeholder="Monto" onkeypress="return numeros(event)" required name="monto" value="<?php echo $prestamo->monto?>" />
        </div>
      </div>
        <div class="form-group">
        <label class="col-lg-4 control-label">Fecha</label>
        <div class="col-lg-4">
          <input type="date"  name="fecha" id="fecha" value="<?php echo $prestamo->fecha?>" required/>
          </input>
        </div>
      </div>
        <div class="form-group">
        <label class="col-lg-4 control-label">Modo de pago</label>
        <div class="col-lg-4">
        <select name="formapago" id="formapago">
        <option value="0">Seleccione</option>
        <?php
      /*   while ($pagos=$formapago->fetch_object())
         {*/
          if ($prestamo->forma_de_pago=="Semanal")
          {
          ?>
              <option value="Semanal" selected="selected">Semanal</option>
              <option value="Quincenal">Quincenal</option>
              <option value="Mensual">Mensual</option>
          <?php
          }
           if ($prestamo->forma_de_pago=="Quincenal")
          {
          ?>
              <option value="Quincenal" selected="selected">Quincenal</option>
              <option value="Semanal">Semanal</option>
              <option value="Mensual">Mensual</option>
          <?php
          }
          if ($prestamo->forma_de_pago=="mensual"){
          ?>
              <option value="Semanal" >Semanal</option>
          <option value="Quincenal" >Quincenal</option>
              <option value="Mensual" selected="selected">Seleccione</option>
          <?php
          }
          ?>
            </select>
        </div>
      </div>
      <br>
      <div class="row col-md-offset-1">
    <button type="submit" name="actualizar" class="btn btn-success col-xs-12 col-md-2 col-md-offset-1">Actualizar</button>
    <button type="reset" name="limpiar" class="btn btn-primary col-xs-12 col-md-2 col-md-offset-1 ">Limpiar</button>
    <button type="button" onclick="location='prestamos.php'" class="btn btn-danger col-xs-12 col-md-2 col-md-offset-1">Cancelar</button>
    </div>
    <input name="id_prestamo" type="hidden" value="<?php echo $_REQUEST['id_prestamo']?>"></input>
      </form>
      </div>
      </body>
      </html>
      Votos: 0 - Link respuesta
     
  • Fecha: 29-03-2017 07:31:10 Ando revisando. El mensaje de error no viene completo pues generalmente indica el nombre del archivo, la linea y en ocasiones informacion adicional.

    Cuando solicites ayuda trata de darnos toda la informacion exacta para poder ayudarte adecuadamente.

    "En el archivo tal, en la linea x, al llamar al metodo y el interprete arroja el siguiente error: [Copia pega el erorr], alguien sabe por que puede estar sucediendo esto?"

    En tu caso, el error lo arroja en la linea 72 del segundo archivo. El mensaje de error incompleto en cuestion es:

    "Trying to get property of non-object"

    Lo unico que queda es asumir que tu consulta no trae resultados por lo tanto $prestamo no es un objeto ergo el error.

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 02-04-2017 11:08:18 El problema es justamente la línea que mencionás
    El select de la consulta de prestamos es
    SELECT p.id_prestamo, p.fecha, p.monto, p.forma_de_pago, p.fiador,
    c.cedula, c.nombre, c.apellido

    y desde esa consulta queres traer $prestamo->id_cliente, como ves, en el select de la consulta no está id_cliente

    Saludos
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com