-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodelo.php
132 lines (103 loc) · 4.15 KB
/
modelo.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
class datos extends mysqli {
public function ejecutarsql($consulta) {
//Metodo que conecta y ejecuta una consulta sql y devuelve un array tipo mysql
//parent::__construct("sql308.0fees.us", "0fe_15924545", "asde71.4", "0fe_15924545_manual");
parent::__construct("db4free.net", "usuario", "usuario", "basededatos", 3307);
parent::query("SET NAMES 'utf8'");
$retorno = parent::query($consulta);
parent::close();
return $retorno;
}
public function resultadoconsulta($sql) {
//ejecuta sql y retorna un array tipo php
$resultado = self::ejecutarsql($sql);
$matriz = array();
while ($registro = mysqli_fetch_array($resultado, MYSQLI_BOTH)) {
$matriz [] = $registro;
}
return $matriz;
}
public function validarconexion() {
//valida funcionamniento de la base de datos
$sql = "SELECT '\n<br> Testeada la conexión a datos y es exitosa\n<br>' AS columna FROM DUAL";
$resultado = self::ejecutarsql($sql);
$fila = $resultado->fetch_assoc();
echo $fila ['columna'];
}
}
class modelogenerica extends datos {
private $matrizatributos; // me almacenara un o más registros con sus atributos
function getMatrizatributos() {
return $this->matrizatributos;
}
function setMatrizatributos($matrizatributos) {
$this->matrizatributos = $matrizatributos;
}
public function leer($atributo = null, $valor = null) {
if ($atributo == null AND $valor == null) {
$this->matrizatributos = parent::resultadoconsulta(
"SELECT * FROM " . get_class($this)
);
} else {
$this->matrizatributos = parent::resultadoconsulta(
"SELECT * FROM " . get_class($this) . " WHERE $atributo='$valor'"
);
}
if (count($this->matrizatributos) == 1) {
$this->matrizatributos = $this->matrizatributos[0];
}
return $this->matrizatributos;
}
public function eliminar($atributo = null, $valor = null) {
$this->matrizatributos = parent::resultadoconsulta("DELETE FROM " . get_class($this) . " WHERE $atributo='$valor'");
}
public function actualizar() {
}
public function crear($datos) {
$campos = parent::resultadoconsulta("DESCRIBE " . get_class($this));
for ($i = 0; $i <= (count($campos)); $i++) {
if ($i == 0 OR $i == (count($campos))) {
$columns = $columns . $campos[$i]['Field'];
} else {
$columns = $columns . ',' . $campos[$i]['Field'];
}
}
echo "<br>Estos son los datos<br>";
var_dump($datos);
//echo "<br>\nINSERT INTO" . " " . get_class($this) . " " . "($columns)VALUES (value1, value2, value3.)";
for ($i = 0; $i <= (count($datos)); $i++) {
if ($i == 0 OR $i == (count($datos))) {
$values = $values . $datos[$i];
} else {
$values = $values . ',' . $datos[$i];
}
}
/*
* Crear con fetch_array el recorido de datos
while(){
}*/
echo "\n<br>$values<br>";
//detectar nombre de tabla
//detectar nombre de columnas
//aquí debe construir la consulta insert into con values enumerados sin incluir el id
//falta contar los elemento$matrizatributoss del array de entrada
//$this->matrizatributos=parent::resultadoconsulta("INSERT INTO ". get_class($this). " WHERE $atributo='$valor'");
}
}
class empresa extends modelogenerica {
}
class formularios extends modelogenerica {
}
class manual extends modelogenerica {
}
class pagina extends modelogenerica {
}
class capitulos extends modelogenerica {
}
echo "modelo.php ejecutado<br>\n";
/*$objpag1 = new pagina();
$registro=$objpag1->leer("id","1");
print_r($registro);
//print_r( $objpag->resultadoconsulta("select *from information_schema.key_column_usage where constraint_name!='Primary' and constraint_schema!='mysql' and constraint_schema='0fe_15924545_manual'"));
*/