Con realizarlo una sola vez es suficiente
Hola, gracias como dice el chapulin colorado: "me lo sospeché desde un principio"
Pero siempre es bueno tener una segunda opinión
Salu2
Con realizarlo una sola vez es suficiente
pues el PHP no fue el culpable
PHP recibia las variables como se muestran en los ejemplos dados (visto gracias a firefox y firebug ), el problema entonces era de Flash xD
ahora, el problema en el Flash esta en la linea del URLLoaderDataFormat, esta TEXT y debe ser VARIABLES, solo es cosa de cambiarlo y ya
afortunadamente estaba el .fla
saludos
$contact_name = utf8_decode($_POST['name']);
$contact_email = utf8_decode($_POST['email']);
$contact_direc = utf8_decode($_POST['direc']);
$contact_tele = utf8_decode($_POST['tele']);
$contact_pais = utf8_decode($_POST['pais']);
$contact_ciudad = utf8_decode($_POST['ciudad']);
$contact_message = utf8_decode($_POST['msg']);
$contact_proyecto = utf8_decode($_POST['proye']);
<?php
/* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
/**
* Clase controladora de las clases
* para la conección a las Bases de Datos
*
* @category Database
* @package PoMyDB
* @author Julian Lasso <julian.lasso@gmail.com>
* @copyright 2006
* @license GPL
* @version 0.9.8
* @name PoMyDB
* @link http://www.sitioficial.com/
*/
class PoMyDB {
/**
* Nombre o IP de la maquina donde esté el servidor de la DB
*
* @var string
* @access private
*/
private $host;
/**
* Login del usuario
*
* @var string
* @access private
*/
private $usuario;
/**
* Contraseña del usuario
*
* @var string
* @access private
*/
private $password;
/**
* Nombre de la DB
*
* @var string
* @access private
*/
private $DB;
/**
* Puerto de conección a la DB
*
* @var string
* @access private
*/
private $puerto;
/**
* Clase de Base de Datos MySQL_4, MySQL_4_5 ó PostgreSQL
*
* @var string
* @access private
*/
private $TipoDB;
/**
* Objeto de la DB a utilizar para las demás clases
*
* @var string
* @access private
*/
private $odb;
/**
* Tabla a utilizar en el guardado, modificación o borrado
*
* @var string
* @access private
*/
private $tabla;
/**
* Array asociativo con llaves (campos) y sus valores
*
* @var array
* @access private
*/
private $camdat;
/**
* Variable que guarda los sentencias generadas
*
* @var string
* @access private
*/
private $sql;
/**
* Array asociativo con las llaves primarias y sus datos para el borrado
*
* @var string
* @access private
*/
private $llaves;
/**
* Constructor de la clase
*
* @access public
* @param string $host - Nombre o IP de la maquina donde esté el servidor de la DB,
* por defecto localhost
* @param string $usuario - Login del usuario
* @param string $password - Contraseña del usuario
* @param string $DB - Nombre de la DB
* @param string $TipoDB - Base de Datos a la que se va a conectar MySQL_4, MySQL_4_5,
* mysql ó PostgreSQL
* @param int $puerto - Puerto de conección a la DB, por defecto es 3306 [opcional]
* @return void
*/
public function __construct($host,$usuario,$password,$DB,$TipoDB,$puerto=null) {
$this->host = $host;
$this->usuario = $usuario;
$this->password = $password;
$this->DB = $DB;
$this->TipoDB = $TipoDB;
if(@$puerto)
$this->puerto = $puerto;
elseif($TipoDB == "MySQL" or $TipoDB == "MySQLi")
$this->puerto = 3306;
elseif($TipoDB == "PostgreSQL")
$this->puerto = 5432;
include_once("class.".$this->TipoDB.".php");
$this->odb = new $this->TipoDB($this->host,$this->usuario,$this->password,$this->DB,$this->puerto);
} // fin __construct()
/**
* Destructor de la clase
*
* @access public
* @return void
*/
public function __destruct() {
unset($this->host,$this->usuario,$this->password,$this->DB,$this->puerto,$this->TipoDB,$this->odb,$this->tabla,$this->camdat,$this->sql,$this->llaves);
} // fin __destruct()
/**
* Crea una conección a la DB
*
* @access public
* @return bool
*/
public function conectar() {
return $this->odb->conectar();
} // fin conectar()
/**
* Selecciona una DB dada
*
* @access public
* @return bool
*/
public function seleccionar_db($DB=null) {
return $this->odb->seleccionar_db($DB);
} // fin seleccionar_db()
/**
* Libera los resultados de la ultima consulta
*
* @access public
* @return void
*/
public function liberar_resultados() {
$this->odb->liberar_resultados();
} // fin liberar_resultados()
/**
* Cierra la conección a la DB
*
* @access public
* @return bool
*/
public function desconectar() {
return $this->odb->desconectar();
} // fin desconectar()
/**
* Ejecuta una consulta SQL en la DB
*
* @access public
* @param string $sql - Sentencia SQL
* @return bool
*/
public function consultar($sql) {
//echo $this->sql."<br>";
return $this->odb->consultar($sql);
} // fin consultar()
/**
* Resultados linea a linea
* NUM = respuesta en matriz numerica
* ASO = respuesta en matriz asociativa
*
* @access public
* @param string $metodo - Metodo por el cual se va a dar la respuesta NUM o ASO
* @param source $resultado - Respuesta de una consulta SQL para sacar
* las lineas [opcional]
* @return array
*/
public function resultado($metodo,$resultado=null) {
return $this->odb->resultado($metodo,$resultado);
} // fin resultado()
/**
* Número de resultados en la ultima consulta
*
* @access public
* @return int
*/
public function numero_resultados() {
return $this->odb->numero_resultados();
} // fin numero_resultados()
/**
* Número campos en el resultado
*
* @access public
* @return int
*/
public function numero_campos() {
return $this->odb->numero_campos();
} // fin numero_campos()
/**
* Errores generados en la DB
*
* @access public
* @return mixed
*/
public function error() {
return $this->odb->error();
} // fin error()
/**
* Información de la versión del servidor de la DB
*
* @access public
* @return string
*/
public function info_version() {
return $this->odb->info_version();
} // fin info_version()
/**
* Hace ping a la conección establecida y si no reacciona,
* intenta crear de nuevo la conección
*
* @access public
* @return bool
*/
public function ping() {
return $this->odb->ping();
} // fin ping()
/*********************************************************/
/* */
/* Funciones publicas o privadas propias de "PoMyDB" */
/* Estas funciones no hacen referencia a ninguna función */
/* de las clases MySQL, MySQLi ó PostgreSQL */
/* solo hacen referencia a funciones de "PoMySQL" */
/* */
/*********************************************************/
/**
* Guarda un registro con los datos que han pasados
*
* @param string $tabla - Tabla en la que se guardaran los datos
* @param array $camdat - Array asociativo con llaves como campos
* y sus valores como valores para cada campo
* @access public
* @return bool
*/
public function guardar($tabla,$camdat) {
$this->tabla = $tabla;
$this->camdat = $camdat;
$this->sql_guardar();
//echo $this->vr_sql."<BR>";
$estado = $this->consultar($this->sql);
return $estado;
} // Fin guardar()
/**
* Construye la sentencia SQL para la inserción
* de los datos
*
* @access private
* @return void
*/
private function sql_guardar() {
/* creamos el inicio de la consulta */
$this->sql = "INSERT INTO " . $this->tabla . " (";
/*----------------------------------*/
/* agregamos los campos */
foreach ($this->camdat as $key => $val) {
$this->sql .= $key . ",";
}
/*----------------------*/
/* borramos la ultima "," */
$longitud = strlen($this->sql); //hallamos la lomgitud
$this->sql = substr($this->sql, 0, $longitud-1) . ") VALUES (";
/*------------------------*/
/* agregamos los valores */
foreach ($this->camdat as $key => $val) {
$this->sql .= $val . ",";
}
/*-----------------------*/
/* borramos la ultima "," y también cerramos */
$longitud = strlen($this->sql); //hallamos la lomgitud
$this->sql = substr($this->sql, 0, $longitud-1) . ")";
/*-------------------------------------------*/
} // Fin sql_guardar()
/**
* Borra un registro con los datos pasados
*
* @param $tabla string
* @param $llaves array
* @access public
* @return bool
*/
public function borrar($tabla,$llaves) {
$this->tabla = $tabla;
$this->camdat = $llaves;
$this->sql_borrar();
$estado = $this->consultar($this->sql);
return $estado;
} // Fin borrar()
/**
* Construye la sentencia SQL para el borrado
* de un registro
*
* @access private
* @return void
*/
private function sql_borrar() {
/* Apertura de la sentencia */
$this->sql = "DELETE FROM " . $this->tabla . " WHERE ";
/*--------------------------*/
/* organizamos los parametros de borrado */
foreach($this->camdat as $key => $val) {
$this->sql .= $key . "=" . $val . " AND ";
}
/*---------------------------------------*/
/* eliminamos el ultimo AND */
$long = strlen($this->sql);
$this->sql = substr($this->sql, 0, $long-5);
/*--------------------------*/
} // Fin sql_borrar()
/**
* Modifica un registro con los datos pasados
*
* @param $tabla string
* @param $llaves array
* @param $camdat array
* @access public
* @return bool
*/
public function modificar($tabla,$llaves,$camdat) {
$this->tabla = $tabla;
$this->llaves = $llaves;
$this->camdat = $camdat;
$this->sql_modificar();
$estado = $this->consultar($this->sql);
return $estado;
} // Fin modificar()
/**
* Construye la sentencia SQL para la modificación
* de un registro
*
* @access private
* @return void
*/
private function sql_modificar() {
/* Apertura de la sentencia */
$this->sql = "UPDATE " . $this->tabla . " SET ";
/*--------------------------*/
/* Organicacion de datos a modificar */
foreach ($this->camdat as $key => $val) {
$this->sql .= $key . "=" . $val . ", ";
}
/*-----------------------------------*/
/* Borramos la ultima "," */
$long = strlen($this->sql);
$this->sql = substr($this->sql, 0, $long-2) . " WHERE ";
/*------------------------*/
/* Organizacion de las llaves */
foreach ($this->llaves as $key => $val) {
$this->sql .= $key . "=" . $val . " AND ";
}
/*----------------------------*/
/* Borramos el ultimo AND */
$long = strlen($this->sql);
$this->sql = substr($this->sql, 0, $long-5);
/*------------------------*/
} // Fin sql_modificar()
/**
* Resultados en un array numerico y su segundo nivel numero o asiciativo
* NUM = respuesta en matriz numerica
* ASO = respuesta en matriz asociativa
*
* @access public
* @param string $sql - Sentencia SQL
* @param string $metodo - Metodo por el cual se va a dar la respuesta NUM o ASO
* @return array ó false
*/
public function resultado_array($sql,$metodo) {
$this->consultar($sql);
$bool = $this->numero_resultados();
if($bool == 0) return false;
$n = 0;
while($fila = $this->resultado($metodo)) {
foreach($fila as $key => $val) {
$respuesta[$n][$key] = $val;
}
$n++;
}
return $respuesta;
} // Fin resultado_array()
public function calcular_numero_siguiente($tabla,$campo,$where=null) {
$where = ($where == null) ? '' : 'WHERE '.$where ;
$sql = "SELECT (MAX($campo) + 1) FROM $tabla $where";
$respuesta = $this->resultado_array($sql,"NUM");
if($respuesta[0][0] == NULL) $respuesta[0][0] = 1;
return $respuesta[0][0];
} // fin calcular_numero_siguiente()
public function sql() {
return $this->sql;
} // fin sql()
} // fin PoMyDB()
?>
<?php
/* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
/**
* Clase controladora de las funciones mysql (MySQL 4.x.x)
*
* @category Database
* @package PoMyDB
* @author Julian Lasso <julian.lasso@gmail.com>
* @copyright 2006
* @license GPL
* @version 0.5.3
* @name MySQL
* @link http://www.sitioficial.com/
*/
class MySQL {
/**
* Nombre o IP de la maquina donde esta el servidor de la DB
*
* @var string
* @access private
*/
private $host;
/**
* Login del usuario
*
* @var string
* @access private
*/
private $usuario;
/**
* Contraseña del usuario
*
* @var string
* @access private
*/
private $password;
/**
* Nombre de la DB
*
* @var string
* @access private
*/
private $DB;
/**
* Puerto de coneccion a la DB, por defecto es 3306
*
* @var integer
* @access private
*/
private $puerto;
/**
* Variable que controla la coneccion
*
* @var string
* @access private
*/
private $conex;
/**
* Variable que guarda los resultados de la ultima consulta
*
* @var string
* @access private
*/
private $resultado;
/**
* Constructor de la clase
*
* @access public
* @param string $host - Nombre o IP de la maquina donde esta el servidor de la DB,
* por defecto localhost
* @param string $usuario - Login del usuario
* @param string $password - Contraseña del usuario
* @param string $DB - Nombre de la DB
* @param int $puerto - Puerto de coneccion a la DB, por defecto es 3306 [opcional]
* @return void
*/
public function __construct($host,$usuario,$password,$DB,$puerto=3306) {
$this->host = $host;
$this->usuario = $usuario;
$this->password = $password;
$this->DB = $DB;
$this->puerto = $puerto;
} // fin __construct()
/**
* Destructor de la clase
*
* @access public
* @return void
*/
public function __destruct() {
unset($this->host,$this->usuario,$this->password,$this->DB,$this->puerto,$this->conex,$this->resultado);
} // fin __destruct()
/**
* Crea una coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function conectar() {
$this->conex = mysql_connect($this->host,$this->usuario,$this->password) or die($this->error());
if(@$this->conex) $this->seleccionar_db();
return true;
} // fin conectar()
/**
* Selecciona una Base de Datos dada
*
* @access public
* @param string $DB - Nombre de la Base de Datos que se utilizar [Opcional]
* @return bool
*/
public function seleccionar_db($DB=null) {
if(@$DB) $this->DB = $DB;
if(!mysql_select_db($this->DB,$this->conex)) die($this->error());
return true;
} // fin seleccionar_db()
/**
* Libera los resultados de la ultima consulta
*
* @access public
* @return void
*/
public function liberar_resultados() {
if(@$this->resultado) mysql_free_result($this->resultado);
} // fin liberar_resultados()
/**
* Cierra la coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function desconectar() {
$this->liberar_resultados();
return mysql_close($this->conex);
} // fin desconectar()
/**
* Ejecuta una consulta SQL en la Base de Datos
*
* @access public
* @param string $sql - Sentencia SQL
* @return bool
*/
public function consultar($sql) {
$this->resultado = mysql_query($sql,$this->conex);
if($this->numero_resultados() > 0) $rsp = true;
else $rsp = false;
return $rsp;
} // fin consultar()
/**
* Resultados linea a linea
* NUM = respuesta en matriz numerica
* ASO = respuesta en matriz asociativa
*
* @access public
* @param char $metodo - Metodo por el cual se va a dar la respuesta NUM o ASO
* @param source $resultado - Respuesta de una consulta SQL para sacar
* las lineas [opcional]
* @return array
*/
public function resultado($metodo,$resultado=null) {
if(@$resultado) $this->resultado = $resultado;
switch($metodo) {
case "NUM":
$rsp = mysql_fetch_row($this->resultado);
break;
case "ASO":
$rsp = mysql_fetch_assoc($this->resultado);
break;
}
return $rsp;
} // fin resultado()
/**
* Numero de resultados en la ultima consulta
*
* @access public
* @return int
*/
public function numero_resultados() {
return mysql_num_rows($this->resultado);
} // fin numero_resultados()
/**
* Numero campos en el resultado
*
* @access public
* @return int
*/
public function numero_campos() {
return mysql_num_fields($this->resultado);
} // fin numero_campos()
/**
* Errores generados en la Base de Datos
*
* @access public
* @return string
*/
public function error() {
return (@$this->conex) ? mysql_error($this->conex) : false;
} // fin error()
/**
* Informacion de la version del servidor de la Base de Datos
*
* @access public
* @return string
*/
public function info_version() {
return mysql_get_server_info($this->conex);
} // fin info_version()
/**
* Hace ping a la coneccion establecida y si no reacciona,
* intenta crear de nuevo la coneccion
*
* @access public
* @return bool
*/
public function ping() {
return mysql_ping($this->conex);
} // fin ping()
} // fin class MySQL()
?>
<?php
/* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
/**
* Clase controladora de las funciones mysqli (MySQLi 5.x.x)
*
* @category Database
* @package PoMyDB
* @author Julian Lasso <julian.lasso@gmail.com>
* @copyright 2006
* @license GPL
* @version 0.0.9
* @name MySQLi
* @link http://www.sitioficial.com/
*/
class MySQLi {
/**
* Nombre o IP de la maquina donde esta el servidor de la DB
*
* @var string
* @access private
*/
private $host;
/**
* Login del usuario
*
* @var string
* @access private
*/
private $usuario;
/**
* Contraseña del usuario
*
* @var string
* @access private
*/
private $password;
/**
* Nombre de la Base de Datos
*
* @var string
* @access private
*/
private $DB;
/**
* Puerto de coneccion a la Base de Datos, por defecto es 3306
*
* @var integer
* @access private
*/
private $puerto;
/**
* Variable que controla la coneccion
*
* @var string
* @access private
*/
private $conex;
/**
* Variable que guarda los resultados de la ultima consulta
*
* @var string
* @access private
*/
private $resultado;
/**
* Constructor de la clase
*
* @access public
* @param string $host - Nombre o IP de la maquina donde esta el servidor de la DB,
* por defecto localhost
* @param string $usuario - Login del usuario
* @param string $password - Contraseña del usuario
* @param string $DB - Nombre de la DB
* @param int $puerto - Puerto de coneccion a la DB, por defecto es 3306 [opcional]
* @return void
*/
public function __construct($host,$usuario,$password,$DB,$puerto=3306) {
$this->host = $host;
$this->usuario = $usuario;
$this->password = $password;
$this->DB = $DB;
$this->puerto = $puerto;
} // fin __construct()
/**
* Destructor de la clase
*
* @access public
* @return void
*/
public function __destruct() {
unset($this->host,$this->usuario,$this->password,$this->DB,$this->puerto,$this->conex,$this->resultado);
} // fin __destruct()
/**
* Crea una coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function conectar() {
$this->conex = mysqli_connect($this->host,$this->usuario,$this->password,$this->DB,$this->puerto) or die($this->error());
return true;
} // fin conectar()
/**
* Selecciona una Base de Datos dada
*
* @access public
* @param string $DB - Nombre de la Base de Datos que se utilizar [Opcional]
* @return bool
*/
public function seleccionar_db($DB=null) {
if(@$DB) $this->DB = $DB;
if(!mysqli_select_db($this->conex,$this->DB)) die($this->error());
return true;
} // fin seleccionar_db()
/**
* Libera los resultados de la ultima consulta
*
* @access public
* @return void
*/
public function liberar_resultados() {
if(@$this->resultado) mysqli_free_result($this->resultado);
} // fin liberar_resultados()
/**
* Cierra la coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function desconectar() {
$this->liberar_resultados();
return mysqli_close($this->conex);
} // fin desconectar()
/**
* Ejecuta una consulta SQL en la Base de Datos
*
* @access public
* @param string $sql - Sentencia SQL
* @return bool
*/
public function consultar($sql) {
$this->resultado = mysqli_query($this->conex,$sql);
if($this->numero_resultados() > 0) $rsp = true;
else $rsp = false;
return $rsp;
} // fin consultar()
/**
* Resultados linea a linea
* NUM = respuesta en matriz numerica
* ASO = respuesta en matriz asociativa
*
* @access public
* @param char $metodo - Metodo por el cual se va a dar la respuesta NUM o ASO
* @param source $resultado - Respuesta de una consulta SQL para sacar
* las lineas [opcional]
* @return array
*/
public function resultado($metodo,$resultado=null) {
if(@$resultado) $this->resultado = $resultado;
switch($metodo) {
case "NUM":
$rsp = mysqli_fetch_row($this->resultado);
break;
case "ASO":
$rsp = mysqli_fetch_assoc($this->resultado);
break;
}
return $rsp;
} // fin resultado()
/**
* Numero de resultados en la ultima consulta
*
* @access public
* @return int
*/
public function numero_resultados() {
return mysqli_num_rows($this->resultado);
} // fin numero_resultados()
/**
* Numero campos en el resultado
*
* @access public
* @return int
*/
public function numero_campos() {
return mysqli_num_fields($this->resultado);
} // fin numero_campos()
/**
* Errores generados en la Base de Datos
*
* @access public
* @return string
*/
public function error() {
return (@$this->conex) ? mysqli_error($this->conex) : false;
} // fin error()
/**
* Informacion de la version del servidor de la Base de Datos
*
* @access public
* @return string
*/
public function info_version() {
return mysqli_get_server_info($this->conex);
} // fin info_version()
/**
* Hace ping a la coneccion establecida y si no reacciona,
* intenta crear de nuevo la coneccion
*
* @access public
* @return bool
*/
public function ping() {
return mysqli_ping($this->conex);
} // fin ping()
} // fin class MySQLi()
?>
<?php
/* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
/**
* Clase controladora de las funciones pg (PostgreSQL 8.1.x)
*
* @category Database
* @package PoMyDB
* @author Julian Lasso <julian.lasso@gmail.com>
* @copyright 2006
* @license GPL
* @version 0.3.2
* @name PostgreSQL
* @link http://www.sitioficial.com/
*/
class PostgreSQL {
/**
* Nombre o IP de la maquina donde esta el servidor de la DB
*
* @var string
* @access private
*/
private $host;
/**
* Login del usuario
*
* @var string
* @access private
*/
private $usuario;
/**
* Contraseña del usuario
*
* @var string
* @access private
*/
private $password;
/**
* Nombre de la DB
*
* @var string
* @access private
*/
private $DB;
/**
* Puerto de coneccion a la DB, por defecto es 5432
*
* @var integer
* @access private
*/
private $puerto;
/**
* Variable que controla la coneccion
*
* @var string
* @access private
*/
private $conex;
/**
* Variable que guarda los resultados de la ultima consulta
*
* @var string
* @access private
*/
private $resultado;
/**
* Constructor de la clase
*
* @access public
* @param string $host - Nombre o IP de la maquina donde esta el servidor de
* la Base de Datos, por defecto localhost
* @param string $usuario - Login del usuario
* @param string $password - Contraseña del usuario
* @param string $DB - Nombre de la DB
* @param int $puerto - Puerto de coneccion a la DB, por defecto es 5432 [opcional]
* @return void
*/
public function __construct($host,$usuario,$password,$DB,$puerto=5432) {
$this->host = $host;
$this->usuario = $usuario;
$this->password = $password;
$this->DB = $DB;
$this->puerto = $puerto;
} // fin __construct()
/**
* Destructor de la clase
*
* @access public
* @return void
*/
public function __destruct() {
unset($this->host,$this->usuario,$this->password,$this->DB,$this->puerto,$this->conex,$this->resultado);
} // fin __destruct()
/**
* Crea una coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function conectar() {
$vl_config = "host=$this->host port=$this->puerto dbname=$this->DB user=$this->usuario password=$this->password";
$this->conex = pg_connect($vl_config,$this->puerto) or die("No se pudo conectar a PostgreSQL");
return true;
} // fin conectar()
/**
* Selecciona una Base de Datos dada
*
* @access public
* @param string $DB - Nombre de la DB que se utilizar [Opcional]
* @return bool
*/
public function seleccionar_db($DB=null) {
if(@$DB) {
$this->DB = $DB;
$this->liberar_resultados();
$this->desconectar();
$this->conectar();
return true;
}
return false;
} // fin seleccionar_db()
/**
* Libera los resultados de la ultima consulta
*
* @access public
* @return void
*/
public function liberar_resultados() {
if(@$this->resultado) pg_free_result($this->resultado);
} // fin liberar_resultados()
/**
* Cierra la coneccion a la Base de Datos
*
* @access public
* @return bool
*/
public function desconectar() {
$this->liberar_resultados();
return pg_close($this->conex);
} // fin desconectar()
/**
* Ejecuta una consulta SQL en la Base de Datos
*
* @access public
* @param string $sql - Sentencia SQL
* @return bool
*/
public function consultar($sql) {
$this->resultado = pg_query($this->conex,$sql);
return $this->resultado;
} // fin consultar()
/**
* Resultados linea a linea
* NUM = respuesta en matriz numerica
* ASO = respuesta en matriz asociativa
*
* @access public
* @param char $metodo - Metodo por el cual se va a dar la respuesta NUM o ASO
* @param source $resultado - Respuesta de una consulta SQL para sacar las lineas [opcional]
* @return array
*/
public function resultado($metodo,$resultado=null) {
if(@$resultado) $this->resultado = $resultado;
switch($metodo) {
case "NUM":
return pg_fetch_row($this->resultado);
break;
case "ASO":
return pg_fetch_assoc($this->resultado);
break;
}
} // fin resultado()
/**
* Numero de resultados en la ultima consulta
*
* @access public
* @return int
*/
public function numero_resultados() {
return pg_num_rows($this->resultado);
} // fin numero_resultados()
/**
* Numero campos en el resultado
*
* @access public
* @return int
*/
public function numero_campos() {
return pg_num_fields($this->resultado);
} // fin numero_campos()
/**
* Errores generados en la Base de Datos
*
* @access public
* @return mixed
*/
public function error() {
return (@$this->conex) ? pg_result_error($this->resultado) : false;
} // fin error()
/**
* Informacion de la version del servidor de la Base de Datos
*
* @access public
* @return string
*/
public function info_version() {
$vl_temp = pg_version($this->conex);
return $vl_temp['client'];
} // fin info_version()
/**
* Hace ping a la coneccion establecida y si no reacciona,
* intenta crear de nuevo la coneccion
*
* @access public
* @return bool
*/
public function ping() {
return pg_ping($this->conex);
} // fin ping()
} // fin PostgreSQL()
?>
<?php
include 'PoMyDB/class.PoMyDB.php';
// $DB seria el nombre de la DB
// $TipoDB seria el tipo de DB - PostgreSQL, MySQL y MySQLi
$db = new PoMyDB($host, $usuario, $password, $DB, $TipoDB);
$db->conectar();
$sql = "SELECT id, usuario, password, nombre, apellidos FROM usuarios";
/**
* en $rsp habría como respuesta false si no hay respuesta o un array del tipo asociativo
* $rsp[0][campo] donde el primer array sería correspondiente a la línea de respuesta y
* el segundo array correspondería al nombre del campo. Por ejemplo que nos respondieran
* 2 lineas
* [id] [usuario] [password] [nombre] [apellidos]
* 1 JALF 12345 Julian Lasso
* 2 FLAJ 54321 Andres Figueroa
*
* Entonces la forma de accesar a los resultados de la primera linea sería
* $rsp[0]['id']
* $rsp[0]['usuario']
* $rsp[0]['password']
* $rsp[0]['nombre']
* $rsp[0]['apellidos']
*
* Y para la segunda línea...
* $rsp[1]['id']
* $rsp[1]['usuario']
* $rsp[1]['password']
* $rsp[1]['nombre']
* $rsp[1]['apellidos']
*
* El metodo es ASO = asiciativo ó NUM = numerico
*/
$rsp = $db->resultado_array($sql,"ASO");
/**
* Ejemplo de guardado de datos
*/
$camdat['id'] = $db->calcular_numero_siguiente('usuarios', 'id');
$camdat['usuario'] = "'XYZ'";
$camdat['password'] = "'LMJ'";
$camdat['nombre'] = "'Lastenia'";
$camdat['apellidos'] = "'Rojas del Totaso'";
$db->guardar('usuarios', $camdat);
unset($camdat);
/**
* Ejemplo de modificación de datos
*/
$llaves['id'] = 1;
$camdat['nombre'] = "William";
$db->modificar('usuarios', $llaves, $camdat);
unset($llaves, $camdat);
/**
* Ejemplo de borrado de datos
*/
$llaves['id'] = 2;
$db->borrar('usuarios', $llaves);
$db->desconectar();
?>
(...)Pero pues tengo una pregunta....¿No veo por ningún lado que se puedan realizar consultas transaccionales??
Tienen esa opción???(...)
$sql = "SELECT usu_nombre AS usuario, his_observaciones AS observaciones
FROM usuarios, historial
WHERE usu_id = his_usu
ORDER BY usu_nombre";
$db->resultado_array($sql,"ASO");
foreach($vector as $indice => $valor) {
echo $valor['usuario'].' -> '.$valor['observaciones'];
}
de pronto es esto (ejemplo para MySQL)Hola que tal, gracias por tus comentarios =)
Bueno en cuanto a lo de las consultas pues te cuento que.... estoy como medio perdido porque cuando necesito hacer una consulta multitabla (si es que a eso te refieres) la haría de la siguiente manera
PHP:$sql = "SELECT usu_nombre AS usuario, his_observaciones AS observaciones FROM usuarios, historial WHERE usu_id = his_usu ORDER BY usu_nombre"; $db->resultado_array($sql,"ASO"); foreach($vector as $indice => $valor) { echo $valor['usuario'].' -> '.$valor['observaciones']; }
A eso te refieres¿? porque si de pronto te refieres a un guardar y que modifique todas las tablas relacionadas pues.... lo que pasa es que trabajo en PostgreSQL y MySQL y... siempre los diseños son de bases de datos relacionales y que cuando se actualiza el registro padre, se actualizan automáticamente los registros hijos. Y lo mismo pasaría al borrar el registro padre, automáticamente se van los registros hijos, por eso siempre manejamos un borrado físico y un borrado lógico donde el lógico siempre me pone en desactivado los registros que deseo borrar supuestamente y no se tienen en cuenta en las consultas que se realizan después.
¿esa es tu duda verdad? y sino ilustrame con un ejemplito bien chebre, puede que no me halla pasado pero puede pasar
Salu2
$db = new PoMyDB($TipoDB);
$db->conectar($host, $usuario, $password, $DB);
de pronto es esto (ejemplo para MySQL)
http://dev.mysql.com/doc/refman/5.0/en/commit.html
por que "repites" variables? es mas, para que las declaras como de la clase? $host y compañia solo las usas para conectar a la BD y ya, que las necesitas para el metodo conectar, pues lo llamas en el constructor y ya, y te ahorras una linea despues o bien llamas el metodo conectar con las variables en lugar del constructor (asi no se "satura" con dos variables con lo mismo y no ha necesidad de hacerlas parte de las clases)
ya que usas PHP5 y "POO", convendria que usaras abstract y extends
alguien me puede ayudar a hacer el codigo de simon dice en PHP??, necesito eso urgente no se ni por donde empezar. gracias
si queda mejor pero en la U me lo exigen en php, no se porque, en java sale facil, incluso en c, pero lo necesito en php pero no se como hacerlo... ayuda
en la web me encontre el codigo en pascal, no se si sea posible pasarlo a php, la verdad no se casi de php, aradeceria cualquier ayuda
program simondice;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
paso, contador, respuesta : integer;
numeros : array [1..10] of integer;
begin
randomize;
paso := 1;
Respuesta := 1;
while paso <= 10 do
begin
contador := 1;
while contador <= paso do
begin
numeros[paso] := random(4)+1;
writeln('Paso ', contador, ' ==> ', numeros[contador]);
contador := contador + 1;
end;
writeln;
writeln('Pulsa <RETURN> cuando estes listo...');
readln;
for contador:=1 to 30 do writeln;
contador := 1;
while contador <= paso do
begin
write('Introducir Paso ', contador,': ');
readln(respuesta);
if respuesta <> numeros[contador] then
begin
writeln('¡¡¡ HAS FALLADO !!!');
readln;
exit;
end
else contador := contador + 1;
end;
writeln;
writeln;
paso := paso +1;
end;
writeln('¡¡¡ HAS GANADO !!!');
end.
ese codigo si lo conosco y entiendo lo que hace, lo que no se es como pasar ese codigo a php
Bien, si entiendes el código pásalo a seudocodigo y así te puedo ayudar a pasarlo a PHP