Ver Mensaje Individual
  #51 (permalink)  
Antiguo 29/12/2005, 05:42
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
pekpon

Te recomendaría encarecidamente que dejes "PHP" a un lado por el momento y te dediques a crear tu Base de datos que vas a usar, definiendo bien el modelo de datos que necesitas, las tablas que intervengan y las relaciones entre estas.

Y sobre todo entiendas en que consiste el termino de la "normalización" . .por que tienes una enorme confusión .. Vas poniendo tablas por qué te "dije" que las usases .. pero esto es algo más que eso y tiene otro transfondo. Los "ID" no se ponen "por si acaso" sino por una razón: usarlos para establecer relaciones con respeto de la integridad referencial ..

Te insisto nuevamente que leas los tutoriales de:
www.mysql-hispano.com

Y te aclares con la Base de datos que necesitas (si quieres ayuda hazlo en el foro de "Base de datos") cuando eso lo tengas claro acude al foro de PHP si tienes dudas sobre alguna implementación concreta.

Te explico por qué por mi parte no voy a intentar "parchear" el código que presentas y por que insisto tanto que un buen diseño de tu BD hará más facil el código PHP que tengas que implementar:

1) cuando haces cosas como esto:
mysql_query("SELECT * FROM jugadores WHERE jugador = '".trim($_POST['portero'])."'")

En principio podrías obtener tu objetivo: obtener los datos de cierto "jugador" .. Pero es que para eso está el -dichoso- "ID" .. no está de "adorno" está para que se use. Cuando generas tu <select> con la lista de jugadores, por un lado presentas su "nombre" y por otro (en el "value" de cada "option") lo que propagarías sería el ID de ese registro (de ese jugador) .. Eso hace las consultas SQL más segurás y NORMALIZAS más tu BD .. Ese es el objetivo de usar el dichoso "ID" ...

(más encima .. tu tienes problemas con la implementación en general de TODO .. si pones código fuera de contexto no se vé si tienes otro fallo o como realmente estás intentando implementar todo lo que por aquí a modo de recomendación se te pueda dar).

Por lo dicho, en tu tabla de "administración":

En los campos:

Portero
Defensa
Medio
Delantero

NOOOO deberías guardar literalmente el "nombre" de ese jugador para el "portero" . .el "delantero" .. etc .. sino su ID del "jugador" (esto es "normalizar") .. Para que se usa esto? . . pues simplemente . .imagina un caso simple: ... el nombre del jugador le pusistes "pepe" y resulta que no es "pepe" sino "pepito" .. Según tu lo haces ahora, modificando la tabla "jugadores" alterando el nombre de ese jugador, quedarían en la tabla "administración" todos esos nombres de "pepe" cuando en realidad eso cambió y debe ser "pepito". Esto parece una "tontería" a simple vista pero es la base para que veas que NO se anda repitiendo el dato (por ejemplo ese "jugador") con su "nombre" regandolo en diferentes tablas sino que se usa su "IDentificador" que lo "une" a el. Por esto mismo .. cuando tu quieras hacer cosas como "eligo tal jugador" y en otro script quiero obtener su "precio" u otra propiedad .. lo haces en base a ese "ID" (dichoso) del jugador, por lo mismo .. si los precios cambian .. se verá refejado para todo (En caso de que corresponda .. en este caso almacenas el "precio" que tenía en ese instante por si fluctua el precio .. y así saber a cuanto se "pago" en tal fecha...).

Lo mismo pasa con tus "usuarios" .. que por todos lados tienes en una "cookie" .. no sé si están esos "usuarios" en una tabla aparte y relacionada (por el dichoso ID) con las tablas que intervengan .. No lo haces por "ID" sino por ese "nombre" .. eso te va a dar problemas y complicar la existencia cuando quieras obtener datos donde intervengan todas estas tablas (por ejemplo .. los "equipos" de tal "usuario" .. con sus "jugadores" y demás ..)

Todo esto como veras .. NOOOO depende de PHP .. es un TEMA que es própio de "Base de datos" .. si quieres hacerlo bien y entender por qué haces las cosas investiga primero ese punto . .olvidate por el momento de PHP.

El diseño de una aplicación no parte sentandose a escribir "código PHP" e ir parcheando lo que uno hace .. Eso se puede hacer cuando son ligeros "cambios" pero no cambios de "estructura" completos como estos que te planteo. Perder un poco de tiempo "pensando" cual es el modelo de dato que necesitas en función de los datos que va a manejar tu aplicación hace que todo lo demas salga "rápido" y sin problemas como los que tienes.

Un saludo,