· 6 years ago · May 08, 2019, 10:38 PM
1<?php
2
3/*function abrir_bd(){
4 $servername="localhost";
5 $username="root";
6 $password="";
7 $base_datos="mi_bd";
8 $mysqli = new mysqli($servername, $username, '');
9
10 return $mysqli;
11}*/
12 $servername = "localhost";
13 $username = "root";
14 $password = "";
15 $base_datos="mi_bd";
16 // Creamos la conexion con la Base de Datos
17 $mysqli = new mysqli($servername, $username, $password);
18 // Comprobamos que se ha realizado la conexion correctamente.
19
20 if ($mysqli->connect_error) {
21 echo "Conexion fallida: " . $mysqli->connect_error;
22 die("Pruebe de nuevo mas tarde.");
23 }else {
24 echo "Conexion establecida";
25 echo "<br>";
26 //Trabajamos con la conexion.
27
28 //Crear bd
29 $sql = "CREATE DATABASE IF NOT EXISTS mi_bd DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci;";
30 if ($mysqli->query($sql) === TRUE)
31 {
32 echo "BD creada con éxito";
33 echo "<br>";
34
35 //Seleccionar la nueva base de datos
36 $mysqli->select_db("mi_bd");
37
38 //Crear tabla Autor
39 $sql_a="
40 CREATE TABLE IF NOT EXISTS Autor(
41 id INTEGER NOT NULL PRIMARY KEY,
42 nombre VARCHAR(15) NOT NULL,
43 apellidos VARCHAR(25) NOT NULL,
44 f_nacimiento VARCHAR(10) NOT NULL)";
45
46 if ($mysqli->query($sql_a) === TRUE)
47 {
48 echo "Tabla Autor creada con exito";
49 echo "<br>";
50
51 //Insertar datos iniciales tabla de Autor
52 $sql1 = "INSERT INTO Autor (id ,nombre, apellidos, f_nacimiento) VALUES (0,'J.R.R.','Tolkien','03/01/1892'),(1,'George R.R.','Martin','20/09/1948')";
53
54 if($mysqli->query($sql1) == TRUE)
55 {
56 echo "Datos introducidos correctamente en la tabla Autor";
57 echo "<br>";
58 }else{
59 echo "Los datos no se han introducido en la tabla Autor, error ". $mysqli-> error;
60 echo "<br>";
61 }
62
63 }else
64 {
65 echo "Error al crear las tabla Autor en la base de datos " . $mysqli-> error;
66 echo "<br>";
67 }
68
69
70 //Creamos la tabla Libro
71
72 $sql_l="
73 CREATE TABLE IF NOT EXISTS Libro(
74 id INTEGER NOT NULL PRIMARY KEY,
75 titulo VARCHAR(50) NOT NULL,
76 f_publicacion VARCHAR(10) NOT NULL,
77 id_autor INTEGER(2) NOT NULL,
78 FOREIGN KEY(id_autor) REFERENCES Autor(id))";
79
80 if ($mysqli->query($sql_l) === TRUE)
81 {
82 echo "Tabla Libro creada con exito";
83 echo "<br>";
84
85 //Insertar datos iniciales tabla de Libro
86 $sql2 = "INSERT INTO Libro(id, titulo,f_publicacion,id_autor) VALUES (1, 'El Hobbit','21/09/1937',0),(2, 'La comunidad del anillo','29/07/1954',0),
87 (3, 'Las dos torres','11/11/1954',0),(4, 'El retorno del rey','20/10/1955',0),(5, 'Juego de Tronos','01/08/1996',1),(6, 'Choque de Reyes','16/11/1998',1)";
88
89 if($mysqli->query($sql2) == TRUE)
90 {
91 echo "Datos introducidos correctamente en la tabla Libro";
92 echo "<br>";
93 }else{
94 echo "Los datos no se han introducido en la tabla Libro, error ". $mysqli-> error;
95 echo "<br>";
96 }
97
98 }else{
99 echo "Error al crear la tabla Libro en la base de datos " . $mysqli-> error;
100 echo "<br>";
101 }
102 }else{
103 echo "error al crear la base de datos (mi_bd)". $mysqli->error;
104 echo "<br>";
105 }
106 }
107
108
109
110
111// Esta API tiene tres posibilidades; Mostrar una lista de autores, mostrar la información de un autor especÃfico o mostrar la lista de libros.
112
113 function get_lista_autores(){
114 //Reestablecemos la conexion, por si se llama unicamente a la funcion
115 $servername="localhost";
116 $username="root";
117 $password="";
118 $base_datos="mi_bd";
119 $mysqli = new mysqli($servername,$username,$password,$base_datos);
120 $lista_autores = array();
121 //Comprobamos la conexion:
122 if($mysqli->connect_error){
123 echo"Conexion fallida <br>";
124 die("Intentelo de nuevo mas tarde <br>");
125 }else{
126 //Trabajamos con la conexion:
127 //Cargamos la información solicitada de la base de datos
128 $sql = "SELECT id, nombre, apellidos FROM Autor";
129 if($result = $mysqli->query($sql)){
130 //Recorremos los datos obtenidos.
131 while ($row = $result->fetch_object()){
132 array_push($lista_autores, array("id"=> $row->id, "nombre"=> $row->nombre, "apellidos"=>$row->apellidos));
133 }
134 }else{
135 echo "Error, compruebe su consulta a la base de datos";
136 }
137 }
138 return $lista_autores;
139 }
140
141
142 function get_datos_autor($id){
143 //Reestablecemos la conexion, por si se llama unicamente a la funcion
144 $servername="localhost";
145 $username="root";
146 $password="";
147 $base_datos="mi_bd";
148
149 $mysqli = new mysqli($servername,$username,$password,$base_datos);
150 $datos_autor=array();
151 //Comprobamos la conexion:
152 if($mysqli->connect_error){
153 echo"Conexion fallida <br>";
154 die("Intentelo de nuevo mas tarde <br>");
155 }else{
156 //Trabajamos con la conexion:
157 $sql = "SELECT * FROM Autor WHERE id=$id";
158 if($result = $mysqli->query($sql)){
159 //Recorremos los datos obtenidos.
160 while ($row = $result->fetch_object()){
161 array_push($datos_autor, array("id" =>$row->id, "nombre" =>$row->nombre, "apellidos" =>$row->apellidos, "f_nacimiento" =>$row->f_nacimiento));
162 }
163 }else{
164 echo "Error, compruebe su consulta a la base de datos";
165 }
166 return $datos_autor;
167 }
168 }
169
170
171
172
173
174 function get_lista_libros(){
175 //Reestablecemos la conexion, por si se llama unicamente a la funcion
176 $servername="localhost";
177 $username="root";
178 $password="";
179 $base_datos="mi_bd";
180
181 $mysqli = new mysqli($servername,$username,$password,$base_datos);
182 $lista_libros=array();
183 //Comprobamos la conexion:
184 if($mysqli->connect_error){
185 echo"Conexion fallida <br>";
186 die("Intentelo de nuevo mas tarde <br>");
187 }else{
188 //Trabajamos con la conexion:
189 $sql = "SELECT id, titulo FROM Libro";
190 if ($result = $mysqli->query($sql)){
191 //Recorremos los datos obtenidos.
192 while ($row = $result->fetch_object()){
193 array_push($lista_libros,array("id"=>$row->id, "titulo"=>$row->titulo)
194 );
195 }
196 }else{
197 echo "Error, compruebe la consulta realizada a la base de datos";
198 }
199 return $lista_libros;
200 }
201 }
202
203 function get_datos_libro($id){
204 //Reestablecemos la conexion, por si se llama unicamente a la funcion
205 $servername="localhost";
206 $username="root";
207 $password="";
208 $base_datos="mi_bd";
209
210 $mysqli = new mysqli($servername,$username,$password,$base_datos);
211 $datos_libro=array();
212 //Comprobamos la conexion:
213 if($mysqli->connect_error){
214 echo"Conexion fallida <br>";
215 die("Intentelo de nuevo mas tarde <br>");
216 }else{
217 //Trabajamos con la conexion:
218
219 $sql = "SELECT Libro.titulo, Libro.f_publicacion, Autor.nombre, Autor.apellidos FROM 'Libro' INNER JOIN 'Autor' ON Libro.id=Libro.autor_id";
220 if($result = $mysqli->query($sql)){
221 //Recorremos los datos obtenidos.
222 while ($row = $result->fetch_object()){
223 array_push($datos_libro,array("titulo"=>$row->titulo, "f_publicacion"=>$row->f_publicacion, "nombre"=>$row->nombre, "apellidos"=>$row->apellidos));
224 }
225 }else{
226 echo "Error, compruebe su consulta a la base de datos.";
227 }
228 }
229 return $datos_libro;
230 }
231
232
233
234
235 $posibles_URL = array("get_lista_autores", "get_datos_autor" ,"get_lista_libros", "get_datos_libro");
236
237 $valor = "Ha ocurrido un error";
238
239 if (isset($_GET["action"]) && in_array($_GET["action"], $posibles_URL))
240 {
241 switch ($_GET["action"])
242 {
243 case "get_lista_autores":
244 $valor = get_lista_autores();
245 break;
246 case "get_datos_autor":
247 if (isset($_GET["id"]))
248 $valor = get_datos_autor($_GET["id"]);
249 else
250 $valor = "Argumento no encontrado";
251 break;
252 case "get_lista_libros":
253 $valor = get_lista_libros();
254 break;
255 case "get_datos_libro":
256 if (isset($_GET["id"]))
257 $valor = get_datos_libro();
258 else
259 $valor = "Dato no encontrado";
260 break;
261 }
262 }
263
264
265 //devolvemos los datos serializados en JSON
266 exit(json_encode($valor));
267?>