Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Soy Principiante En PHP POO

Estas en el tema de Soy Principiante En PHP POO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Soy Principiante en Esto tengo Este Condigo Modelo: Código PHP: public function  ConsultarPorCampo  ( $id , $campo  =  "idRecurso" , $presentacion  =  "table" ) {          $consulta  ...
  #1 (permalink)  
Antiguo 14/04/2011, 18:55
 
Fecha de Ingreso: abril-2011
Ubicación: Cali
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Soy Principiante En PHP POO

Soy Principiante en Esto tengo Este Condigo


Modelo:

Código PHP:

public function ConsultarPorCampo ($id,$campo "idRecurso",$presentacion "table") {
        
$consulta "SELECT Rnombre,Restado,Anombre,idRecurso FROM Recurso AS R, Ambiente AS A WHERE R.idAmbiente=A.idAmbiente AND $campo='$id' ";    
        
$result $this->bd->query($consulta);
        
        if(
$presentacion == "table"){

          while (
$obj $result->fetch_object()){
              
$nombre $obj->Rnombre;
              
$estado $obj->Restado;
              
$ambiente $obj->Anombre;
            } 
Y En la Vista Tengo:

[PHP]
<?php session_start();?>
<html>
<head></head>
<body>
<br>
<form name="datos2" action="../../Control/RecursoControl.php" method="GET">
<input type="hidden" value="3" name="form">
<?php
if(isset($_GET['id'])){
$_SESSION['var'] = $_GET['id'];
}

include_once '../../Modelo/Recurso.php';
$obj = new Recurso();
$obj->ConsultarPorCampo ($_SESSION['var']);

?>
<input type="hidden" name="idRecurso" value="<?php echo $_SESSION['var'] ?>">
<br>
<label>Ambiente:</label>
<input type="text" name="Anombre" disabled="disabled" value="<?php $nom =(isset($_POST['hop']))?$_POST['hop']:null; echo $nom; ?>">
<input type="hidden" name="idAmbiente" value="<?php $id =(isset($_POST['dio']))?$_POST['dio']:null; echo $id; ?>">&nbsp;
<button type="button" onclick="location.href='Extra/BusAmb.php'">Buscar</button>&nbsp;
<br><br>
<label>Nombre Recurso:</label>
<input type="text" name="Rnombre" value="<?php echo $nombre ?>">
<br><br>
<label>Estado:</label>
<select name="Restado">
<option value="Bueno">Bueno</option>
<option value="Malo">Malo</option>
</select>
<br><br>
<input type="submit" value="Guardar">
</form>
</body>
</html>

Necesito Que Esas Variables De Ese Modelo Las Pueda Usar En Esa Vista Pero En No Se Como Aser, Quiero Aser Algo Como:

<input type="text" name="Rnombre" value="<?php echo $nombre ?>">
  #2 (permalink)  
Antiguo 14/04/2011, 18:58
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Soy Principiante En PHP POO

Trabajas con un framework especifico?? o estas aplicando el patron solo en tus clases?? el controlador donde lo dejaste??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 14/04/2011, 19:19
 
Fecha de Ingreso: abril-2011
Ubicación: Cali
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: Soy Principiante En PHP POO

Mira Me Enseñaron Poco Trabajo En MVC

En Modelo Esta

Recurso.php

Código PHP:
Ver original
  1. public function ConsultarPorCampo ($id,$campo = "idRecurso",$presentacion = "table") {
  2.         $consulta = "SELECT Rnombre,Restado,Anombre,idRecurso FROM Recurso AS R, Ambiente AS A WHERE R.idAmbiente=A.idAmbiente AND $campo='$id' ";    
  3.         $result = $this->bd->query($consulta);
  4.        
  5.         if($presentacion == "table"){
  6.  
  7.           while ($obj = $result->fetch_object()){
  8.               $nombre = $obj->Rnombre;
  9.               $estado = $obj->Restado;
  10.               $ambiente = $obj->Anombre;
  11.             }

Y En Vista Tengo

ModificarRecurso.php

Código PHP:
Ver original
  1. <?php session_start();?>
  2. <html>
  3. <head></head>
  4. <body>
  5. <br>
  6. <form name="datos2" action="../../Control/RecursoControl.php" method="GET">
  7. <input type="hidden" value="3" name="form">
  8. <?php
  9. if(isset($_GET['id'])){
  10. $_SESSION['var'] = $_GET['id'];
  11. }
  12.  
  13. include_once '../../Modelo/Recurso.php';
  14. $obj = new Recurso();
  15. $obj->ConsultarPorCampo ($_SESSION['var']);
  16.  
  17. ?>
  18. <input type="hidden" name="idRecurso" value="<?php echo $_SESSION['var'] ?>">
  19. <br>
  20. <label>Ambiente:</label>
  21. <input type="text" name="Anombre" disabled="disabled" value="<?php $nom =(isset($_POST['hop']))?$_POST['hop']:null; echo $nom; ?>">
  22. <input type="hidden" name="idAmbiente" value="<?php $id =(isset($_POST['dio']))?$_POST['dio']:null; echo $id; ?>">&nbsp;
  23. <button type="button" onclick="location.href='Extra/BusAmb.php'">Buscar</button>&nbsp;
  24. <br><br>
  25. <label>Nombre Recurso:</label>
  26. <input type="text" name="Rnombre" value="<?php echo $nombre ?>">
  27. <br><br>
  28. <label>Estado:</label>
  29. <select name="Restado">
  30. <option value="Bueno">Bueno</option>
  31. <option value="Malo">Malo</option>
  32. </select>
  33. <br><br>
  34. <input type="submit" value="Guardar">
  35. </form>
  36. </body>
  37. </html>

Lo que hago en la vista es llamar la funcion que me cosulta a la base de datos lo que quiero
es que los datos de la base de datos pegarlos en la vista como es una vista de modificar necesito que el usuario vea los datos anteriores y que el usuario va a modificar entonces en la funcion guardo los datos en variables ago el include y hacer en la caja de texto esto
<input type="text" name="Rnombre" value="<?php echo $nombre ?>"> pero esta mal por que no me da me aparece que la variable nombre esta undefined :(
  #4 (permalink)  
Antiguo 14/04/2011, 19:30
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Soy Principiante En PHP POO

por eso mismo te pregunto y tu controlador?? aunque la vista tenga acceso al modelo, en este caso tu quieres ejecutar una accion(modificar) a un usuario, esta deberia de tener su controlador y hacer la conexion entre el modelo y la vista de este, siendo la responsabilidad del controlador pasar el usuario que van a modificar a esta vista ya que el controlador debe haber traido los datos de este desde el modelo, entonces vuelvo a preguntarte y tu controlador?? bueno seria bueno que vieras de nuevo los conceptos del MVC, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 14/04/2011, 19:49
 
Fecha de Ingreso: abril-2011
Ubicación: Cali
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: Soy Principiante En PHP POO

Yo Tengo Mi Controlador Cuando Mando Los Datos De Las Vistas A En Controlador Y De Ahi El Modelo Pero En esta Vista de modificar tengo que llamar una funcion antes de mandar datos entonces nose ahi como hacer para que el controlador actue pero lo mas importante es como pegar la varibles en la vista ya que tengo urgencia en esta solucion de antemano gracias necesito ayuda ;)
  #6 (permalink)  
Antiguo 15/04/2011, 16:06
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Soy Principiante En PHP POO

Pues fijate que tambien deberia de ser trabajo del controlador decirle a la vista cual registro va a modificar fijate en este ejemplo sencillo que hacia para una prueba del curso que estoy haciendo, es algo basica y estructurada pero funciona
Código PHP:
Ver original
  1. if(isset($_POST['EMP_NOMBRE']) && isset($_POST['EMP_COD'])){// verificamos que traiga los datos a modificar
  2.         $datos = array('emp_cod'=>$_POST["EMP_COD"],'emp_nombre'=>$_POST["EMP_NOMBRE"]);
  3.         $actualizar = $modelo->actualizar($datos,$_POST['codigo']);
  4.         $codigo = $_POST['codigo'];
  5.         $consulta = $modelo->consultar($codigo);       
  6.         if($actualizar === true){
  7.             $_SESSION["confirm"] = "si";
  8.             $_SESSION["datos"] = $consulta;
  9.             header("location:../modificar.php");
  10.             exit;
  11.         }
  12.         else{
  13.             $_SESSION["error"] = "Ha ocurrido un error";
  14.             header("location:../modificar.php");
  15.             exit;
  16.         }
  17.     }
  18.     else{ // sino los trae verifica el codigo que trae la vista y los pasa al formulario de datos a modificar
  19.         $codigo = $_REQUEST['codigo'];
  20.         $datos = $modelo->consultar($codigo);      
  21.         if(count($datos) == 0){
  22.             $_SESSION["error"] = "Usuario no existe";
  23.             header("location:../modificar.php");
  24.             exit;
  25.         }
  26.         else{
  27.             $_SESSION["datos"] = $datos;
  28.             header("location:../modificar.php");
  29.             exit;
  30.         }
  31.     }

si te fijas si trae los datos del formulario a modificar automaticamente va a la parte de insercion de datos, sino hace una consulta segun el codigo que le indique bien sea por un link con el codigo del registro (empleado en mi caso) o por un formulario de busqueda de registro para modificacion y luego le pasa el resultado de la consulta a la vista y lo coloca en el formulario para que en este se hagan las modificaciones, por eso te preguntaba por el controlador, espero que te pueda servir de guia
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 18/04/2011, 14:02
 
Fecha de Ingreso: abril-2011
Ubicación: Cali
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: Soy Principiante En PHP POO

Gracias ;) Buen Ejemplo Pero Me Quedan Muchas Dudas Todavia

mira mi controlador

RecursoControl.php

Código PHP:
Ver original
  1. include_once '../Modelo/Recurso.php';
  2. $form = $_GET['form'];
  3. echo "llego el formulario ::". $form ."<hr>";
  4.  
  5. $objPro = new Recurso();
  6.  
  7.  switch ($form){
  8.     case 1:
  9.         $idA = $_GET['idAmbiente'];
  10.         $nombre = $_GET['Rnombre'];
  11.         $esta = $_GET['Restado'];  
  12.         $objPro->Registrar($idA,$nombre, $esta);       
  13.         echo "Aqui Se Inserto : ".$idA." , ".$nombre." , ".$esta;
  14.         break;
  15.     case 2:        
  16.         $cod = $_GET['id'];
  17.         $objPro->Eliminar ($cod);
  18.         echo "Aqui Se Elimino El Id : ".$cod;
  19.         break;
  20.     case 3:
  21.         $id = $_GET['idRecurso'];
  22.         $idA = $_GET['idAmbiente'];
  23.         $nombre = $_GET['Rnombre'];
  24.         $esta = $_GET['Restado'];
  25.         $objPro->Modificar($id,$idA,$nombre,$esta);        
  26.         echo "Aqui Se Inserto : ".$id." , ".$idA." , ".$nombre." , ".$esta;
  27.         break;
  28.  }

Como Puede Ver Mi Controlador Actua Cuando Le Llega La Variable $form
En Esta Vista De Modificar Es Un Caso Especial Por Que Antes De Enviar Los Datos Tengo Que Hacer Una Consulta (Osea Llamar La Funcion Antes De Enviar Los Datos De La Vista) Por Eso No Se Como Hacer Que El Controlador Funcion Si no le Llega La Variable $form Como Harias Tu Coje Mi Codigo Y Modificalo Por Favor Para Yo Poder Enterder Gracias Por Tu Atencion Prestada ;)
  #8 (permalink)  
Antiguo 18/04/2011, 20:01
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Soy Principiante En PHP POO

fijate todo el codigo que te pase es para hacer la actualizacion, si te fijas verifico que vengas los datos del formulario que serian los datos a actualizar, sino trae estos datos entonces verifico que el codigo que esta colocando si existe lo cargo en el formulario, sino existe le indico al usuario que no existe, entonces si te das una pequeña guia con el codigo que te deje lo mas seguro es que puedas solventar tu problema, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:41.