Le adjunto la clase me funciona mas la que me da el error junto con mi archivo de conexion:
archivo de conexion que se llama mysqli.php
Código PHP:
class con_mysqli{
public static function conexion(){
$db_cfg = require_once 'config/database.php';
$conexion = new mysqli($db_cfg["host"], $db_cfg["user"], $db_cfg["pass"], $db_cfg["database"]) or die ("se produjo un error porque: ".$this->mysqli->error);
$conexion->query('SET NAMES "'.$db_cfg["charset"].'"');
return $conexion;
}
}
este archivo de mysqli.php lo incluyo en el index mediante include_once ("config/bd/mysqli.php");
archivo database.php donde cargo los datos de bd y los paso a mysqli mediante un arreglo
Código PHP:
<?php
return array(
"host" =>"localhost",
"user" =>"root",
"pass" =>"",
"database" =>"julio",
"charset" =>"utf8"
);
?>
Código PHP:
<?php
session_start();
/*Archivos de configuracion*/
include_once ("config/bd/mysqli.php");
/*definicion de modelos*/
require_once modelos."config".model;
require_once modelos."articulos".model;
if(isset($_SESSION["usuario"])){ //preguntamos si esiste la sesion del usuario
if(isset($_GET['c'])){ // preguntamos si viene la accion por la url
$accion = $_GET['c']; //la asiganmos a la variable $accion
}else{
$accion = "panel"; // aignamos la accion por defecto que es el contraldor
}
if(is_file(controlador.$accion.controller)){ //preguntamos si existe el archivo concatenando, quedaria algo asi: "controlador/inicio.php"
require_once(controlador.$accion.controller); // cargamos el archivo
}else{
require_once(controlador."error".controller); //en caso la accion o el archivo no exista lo enviamos a una ventana de error
}
}else{
require_once(controlador."login".controller); //de no existir ninguna sesion ya creada,lo redirigimos a la ventana de logueo
}
?>
clase departamentos_model.php el cual me funciona perfecto puedo mostrar, agregar y elminar un departamento.
Código PHP:
<?php
class Departamentos{
private static $instancia;
private $mysqli;
public static function singleton_departamentos(){
if (!isset(self::$instancia)) {
$miclase = __CLASS__;
self::$instancia = new $miclase;
}
return self::$instancia;
}
public function __construct(){
$this->mysqli = con_mysqli::conexion();
}
public function mostrar_todos(){
$result = $this->mysqli->query("select * from `departamentos`");
if (!$result){
printf("Errormessage: %s\n", $this->mysqli->error);
}
if($result->num_rows >= 1){
while($cam = $result->fetch_assoc()){
$departamento[] = $cam;
}
}
return $departamento;
}
public function Agregar_departamento($nombre,$descripcion){
$result = $this->mysqli->query("select * from `departamentos` where nombre = '$nombre'");
if($result->num_rows == 1){
echo "<script>window.location = '?c=agregar_departamento&error=3'</script>";
}else{
$query = "insert into `departamentos` values (null, '$nombre', '$descripcion')";
$res = $this->mysqli->query($query);
if (!$res){
return false;
}else{
return true;
}
}
}
public function Eliminar_departamento($id){
$result = $this->mysqli->query("select * from `departamentos` where id = '$id'");
if(!$result->num_rows >= 1){
echo "<script>window.location = '?c=agregar_departamento&error=4'</script>";
}else{
$query = "delete from `departamentos` where id = '$id'";
$res = $this->mysqli->query($query);
if (!$res){
return false;
}else{
return true;
}
}
}
public function __clone(){
trigger_error('La clonación de este objeto no está permitida', E_USER_ERROR);
}
}
?>
Código PHP:
<?php
class Articulos{
private static $instancia;
private $mysqli;
public static function singleton_Ar(){
if (!isset(self::$instancia)) {
$miclase = __CLASS__;
self::$instancia = new $miclase;
}
return self::$instancia;
}
public function __construct(){
$this->mysqli = con_mysqli::conexion();
}
public function Agregar_articulos($serial,$producto,$descripcion,$marca,$modelo,$departamento,$precio){
$r = $this->mysqli->query("SELECT * FROM `articulos` WHERE `serial` = '$serial'") or die ("se produjo un error porque: ".$this->mysqli->error);
if($r->num_rows == 1){
echo "<script>window.location = '?c=agregar_productos&error=3'</script>";
}else{
if (!$this->mysqli->query("insert into `articulos` (`id`, `serial`, `nombre`, `descripcion`, `marca`, `modelo`, `departamento`, `precio_sin_iva`) values (null, '".$serial."', '".$producto."', '".$descripcion."', '".$marca."', '".$modelo."', '".$departamento."', '".$precio."')")){
return false;
}else{
return true;
}
}
}
public function __clone(){
trigger_error('La clonación de este objeto no está permitida', E_USER_ERROR);
}
}
?>