Hola a todos, Pide su valiosa colaboración en algo que he intentado hacer en Días.
Desde que me enteré que php entro al grupo de los grandes lenguajes con php 5 (php OO), decide aprender el mismo.
Domino perfectamente a java, pero ahorita estoy tratando de hacer una aplicación php con el patrón DAO. pero no logro traer información de las base de datos mediante el método @mysql_query:
primero tengo la clase
conexión(solo muestro las funciónes que estoy utilizando):
Código PHP:
<?php
class conexion {
/* http://www.damianaguilar.com/articulos/php:_orientado_a_objetos/clase_para_conexi%C3%B3n_a_mysql_con_php/18/ */
/* http://www.scriptmatico.com/2007/07/28/6/ */
var $server;
var $user;
var $pass;
var $data_base;
var $conexion_in;
var $flag = false;
var $error_conexion = "Error en la conexion a MYSQL";
function connect(){
$this-> server = "localhost";
$this-> user ="root";
$this-> pass ="una_contraseña";
$this->conexion_in = @mysql_connect($this->server,$this->user,$this->pass) or die($this->error_conexion);
$this->flag = true;
@mysql_query("SET NAMES utf8");
}
function close(){
if($this->flag == true){
@mysql_close($this->conexion_in);
}
}
function query($query){
return @mysql_query($this->data_base,$query);
}
function f_obj($query){
return @mysql_fetch_object($query);
//return @mysql_fetch_row($query);
}
function select($db){
$result = @mysql_select_db($db,$this->conexion_in);
if($result){
$this->data_base = $db;
return true;
}else{
return false;
}
}
function free_sql($query){
if(isset($query)){
mysql_free_result($query);
}
}
}
?>
estoy utilizando la clase anterior en la clase
Accion:
Código PHP:
<?php
/**
* Description of acciones
*
* @author stivenson
*/
include('conexion.php');
class Accion {
var $obJconexion;
var $sqlAccion;
var $resultAccion;
function conectar() {
$this->obJconexion = new conexion;
$this->obJconexion->connect();
$this->obJconexion->select("semillero");
}
function traerfila($nombretabla, $condicioncampo, $condicionvalor) {
//echo ("SELECT * FROM " . $nombretabla . " WHERE " . $condicioncampo . "=" . $condicionvalor . ";");
$this->sqlAccion = $this->obJconexion->query("SELECT * FROM " . $nombretabla . " WHERE " . $condicioncampo . "=" . $condicionvalor . ";");
$this->resultAccion = $this->obJconexion->f_obj($this->sqlAccion);
return $this->resultAccion;
}
// muchas mas funciones ...
}
?>
y luego estoy utilizando la clase
Accion en la clase
informacionsemillero:
Código PHP:
<?php
/*
*
* Description of informacionsemillero
*
* Patron DAO, CLASE DE CONEXIÓNES HACIA TABLA INFORMACIÓNSEMILLERO
*
* @author stivenson
*
*/
include('Accion.php');
class informacionsemillero {
var $Accion;
function traerinfo($numColumn){
$this->Accion=new Accion;
$this->Accion->conectar();
$resultado = $this->Accion->traerfila("informacionsemillero","idinformacionsemillero",$numColumn);
$this->Accion->cerrarconexion();
return $resultado;
}
}
?>
y luego en el controlador,(o al menos es la idea), utilizo a la clase
informacionsemillero:
Código PHP:
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of sobreaditic
*
* @author stivenson
*/
include ("../modelo/informacionsemillero.php");
class controladorInfosemillero {
function traerinfo(){
$obJinformacionsemillero = new informacionsemillero;
return $obJinformacionsemillero->traerinfo(1);
}
}
?>
finalmente intento mostrarlo en la vista:
Código PHP:
<?php
include("../controlador/controladorInfosemillero.php");
$objeto = new controladorInfosemillero;
?>
<?php include("./plantilla/body_superior.php"); ?>
<?php
$resultadoVista = $objeto->traerinfo();
while ($fila = $resultadoVista) {
echo $fila->contenidoinformacion; // nombre de la columna
}
// var_dump($resultadoVista);
// echo($resultadoVista);
?>
<?php include("./plantilla/body_inferior.php"); ?>
pero no funciona y el problema resulta desde la función query de la clase conexion. la mas inferior. :/, simplemente no devuelve nada.
Agradezco sus consejos y recomendaciones.