Explico:
Yo tengo una base de datos de jugadores de futbol hecha con tablas relacionales mediante identificadores (ej: en la tabla jugadores, cada jugador tiene un campo que es id_equipo, que lo relaciona con la tabla equipos en la que la PRIMARY KEY es id_equipo.
La página que muestra los registros que hay en la base la tengo subida a aquí:
http://tjlfifa.com/oficina/equipos.php
Tengo bastantes problemas con unos puntos que quiero solucionar y sonbásicos para el funcionamiento de la base de datos:
1º Problema:
He creado una función, para que cuando se haga click en el nombre de una liga, muestre los equipos que pertenecen a esa liga, por ejemplo, la liga adelante, tendría que mostrar sólo los equipos que tuvieran el id_liga de la liga adelante (también está hecho en tablas relacionales, como en ejemplo que dí anteriormente).
No consigo que muestre los equipos, tan sólo consigo que saque el nombre, dejo una muestra de la función y la llamada de la función en la página:
La función que utilizo desde una página donde tengo almacenadas las funciones:
Código :
//devuelve el nombre del equipo que ficha en fichajes function dame_equipos_liga($id){ if (ctype_digit($id)){ $ssql = "select * from ligas where id_liga=" . $id; $rs = mysql_query($ssql); //compruebo si se encontró un país if (mysql_num_rows($rs)>0){ $fila =mysql_fetch_array($rs); return $fila["nombre_liga"]; } return "equipo desconocido..."; }else{ return false; } }
La llamada a la función que realizo en la página equipos.php
Código :
//muestra los equipos que pertenecen a cada liga echo "<p>"; if (isset($_GET["ligas"]) && ctype_digit($_GET["ligas"])){ $id_liga = $_GET["ligas"]; $ssql .= " and equipos.id_liga=" . $id_liga; echo '<h2>5 mejores jugadores de '; echo dame_nombre_liga($id_liga); echo '</h2>'; //cierre del título de la búsqueda del país } echo '<p>';
Lo que me muestra es una lista de equipos de todas las ligas.
2º Problema
Tengo otra página la cual procesa y muestra la información de cada equipo, como por ejemplo, los jugadores de cada equipo.
Bien, en la parte alta de esa página, tengo otras llamadas a otras funciones que tambuién utilizo que muestran el nombre del equipo, su presupuesto, su valoración... Pero hay otros campos que no logro mostrar porque están en otra tabla relacionada.
Por eso lo único que lograría mostrar tan sólo conectando con la tabla de equipos sería el identificador, por ejemplo, de id_estadios (que está relacionado con la tabla estadios, en la que su PRIMARY KEY es id_estadios. Esta tabla estadios contiene el nombre del estadio, su capacidad... algo que también quisiera mostrar en los datos del equipo.)
La función con la que saco los datos del equipo sería esta:
Código :
//devuelve el nombre del equipo y los datos del equipo en el que se hace click function dame_nombre_equipo($id){ if (ctype_digit($id)){ $ssql = "select * from equipos where id_equipo=" . $id; $rs = mysql_query($ssql); //compruebo si se encontró un país if (mysql_num_rows($rs)>0){ $fila =mysql_fetch_array($rs); return '<img border="0" src="images/escudos/' . $fila["imagen_escudo"] . '" width="45" height="45">' . $fila["nombre_equipo"] . "<br>Presupuesto fichajes: " . $fila["presupuesto_fichajes"] . "<br>Valoración: " . $fila["valoracion"] . " estrellas<br>" . "<br>" . $fila["id_banner"]; } return "equipo desconocido..."; }else{ return false; } }
Y para la llamada de los datos en página de plantillas.php
Código :
//muestra los jugadores que pertenecen a cada equipo echo '<p>'; if (isset($_GET["equipos"]) && ctype_digit($_GET["equipos"])){ $id_equipo = $_GET["equipos"]; $ssql .= " and jugadores.id_equipo=" . $id_equipo; echo '<h2>'; echo $fila["nombre_equipo"]; echo dame_nombre_equipo($id_equipo) . "<br>"; echo dame_nombre_estadio($id_equipo); echo '</h2>'; //cierre del título de la búsqueda }
Para los que aún no me hayan entendido(me explico mal jeje), les dejo una estructura muy básica de la base de datos para que puedan entenderme:
Tabla: equipos (id_equipo, nombre_equipo, presupuesto_fichajes, valoracion, id_liga...)
tabla: estadios (id_estadio, nombre_estadio, capacidad_estadio, id_equipo)
Tabla: ligas (id_liga, nombre_liga)
También hay otras como país, ficha, atributo, pero que no nombraré porque no tienen relación (o eso creo) con el fallo que quiero solucionar..
Muchas gracias pro la atención y espero que me ayudéis a solucionar el error.
PD: Si alguién necesita que suba los archivos para encontrar el error y mismo si quiere desarrollar un sript parecido, sin ninguna pega los subiré aquí para que puedan descargarlos.
Saludos