Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2012, 19:47
i34a23
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 2 meses
Puntos: 1
programando una clase para manejar MySql

He comenzado a programar con PHP OO luego de leer alguna documentación, y practicar algo el tema.

Bueno lo primero que me dije a mi mismo es quiero manejar las funciones de MYSQL con una clase ya sé que hay librerías dedicadas a este cometido, pero de todas maneras quiero hacerlo a "mi manera".

el problema que tengo es el siguiente, parto por detallar la clase.

Código:
<?php
require("config.ini.php");

class sql
{
private $DBserver = _DB_SERVER_ ;
private $DBname = _DB_NAME_ ;
private $DBusr = _DB_USR_ ;
private $DBpass = _DB_PASS_ ;

	private function DBconnect()
	{
	$DBcon = mysql_connect ($this->DBserver, $this->DBusr, $this->DBpass);
	$DBselect = mysql_select_db ($this->DBname,$DBcon);
	$DBconnect = $DBcon & $DBselect;
	return $DBconnect;
	}
	
	public function DBclose()
	{
	mysql_close();
	}
	

	public function DBselect($query)
	{
	$this->DBconnect();
	$DBselect = mysql_query ($query) or die ("Problemas Insertando registro. Constacte con el administrador " .mysql_error());
	return $DBselect;
	}
	
	public function f_array($query)
	{
		return @mysql_fetch_array($query);
	}

	
	
	/***
	- $tabla: indicar nombre de la tabla que se manipulará
	- $campos: debe seguir el siguiente formato " campo , campo2 "
	- $valores: deben seguir el siguiente formato " 'valor1' , 'valor2' " 
	***/
	public function DBinsert($tabla, $campos, $valores)
	{
	$this->DBconnect();
	$query = "INSERT into " .$tabla ."(" .$campos .") values (" .$valores .")";
	$DBinsert = mysql_query ($query) or die ("Problemas Insertando registro. Constacte con el administrador " .mysql_error());
	$this->DBclose();
	}
	
	
	public function DBdelete($tabla, $campo, $eliminado)
	{
	$this->DBconnect();
	$query = "DELETE from " .$tabla ." WHERE " .$campo ." = " .$eliminado;
	$DBdelete = mysql_query($query) or die ("Problemas Borrando registro. Constacte con el administrador " .mysql_error());
	$this->DBclose();
	
	echo $query;
	}
}

?>

Como pueden ver hay:

-Funcion que conecta * Funciona
- Función que cierra conexion *Funciona
- DBselect - consulta la base de datos *Funciona
- mysql_fetch array *errores
- insertar *Funciona
- Delete *Funciona

Mi problema es con f_array, lo más probable es que mi problema sea de lo más básico pero no encuentro la solución.

Necesito crear un ID el cual es el siguiente número del último registro. eso quiere decir que si el último usuario registrado es 3... el siguiente ID será 4, para eso realizo lo siguiente.

Código:
$ID = new sql;
$id_sql = $ID->DBselect('select usr_id from control_usr');
$id_arr = $ID->f_array($id_sql);

print_r ($id_arr);
me arroja sólo 1 resultado independiente de que hayan más registros.

al insertarlo en un while

Código:
while ($id = $id_arr){
echo $id['usr_id'];
}
me arroja un bucle infinito.

Que aplico mal ? :(
espero puedan ayudarme me despido y muchas gracias.


saludos