Tema de Goles

Hola de nuevo,
Tengo una bbdd con jugadores y sus goles marcados.
Mi formulario pide el nombre del jugador y los goles marcados. Si ya existe el jugador, le suma los goles. Si no existe, le da de alta con los goles que ponga.
Me gustaría sistematizar esto de manera que mi formulario mostrase a todos los jugadores del equipo y a su lado una casilla con los goles que llevan. Esta casilla debería ser una caja de texto que muestra 4 goles (por ejemplo), pero que puedo borrar y poner 6. En consecuencia, enviar un UPDATE a la bbdd.
También me surge la duda de como actualizar los registros en caso de que solamente quiera actualizar a un jugador, ya que el SUBMIT mandara todos los datos juntos de nuevo (¿debería poner un UPDATE de todo aunque solamente actualice los goles de uno solo?)
Espero haber sido explicito! Gracias de nuevo!

1 respuesta

Respuesta
1
Puedes en efecto, actualizar todos los jugadores sin saber si se han modificado o no. Esto sería útil si normalmente se modificasen varios a la vez (como seguramente será tu caso).
Si por el contrario piensas que sólo se cambiará uno de los jugadores cada vez, puedes poner un botón al lado de cada jugador para indicar que es ese el que se quiere actualizar.
El nombre del botón puede hacer referencia al id del jugador para reconocer cual es el que debe actualizarse.
En definitiva, es más sencillo el primer sistema.
OK, esta parte me queda clara.
Pero no consigo mostrar el formulario enlazado con PHP/Mysql. Es decir, no consigo mostrar el INPUT donde van los goles y donde ya muestre los goles que el jugador llevaba
En definitiva, necesito mostrar al jugador y a su derecha una caja con los goles que lleva (obtenidos del Mysql también).
A ver si me puedes explicar cómo iría el código aquí!
GraciaS!
Perdona!
Tras mucho toqueteo lo he conseguido.
Lo que no se hacer es el código de UPDATE.
Tengo que poner un WHILE tambien? ¿O decirle directamente que Actualice el campo Goles?
Gracias
Este es el código que he puesto para el UPDATE:
$result = mysql_query("SELECT * FROM datos WHERE Grupo='BOYS' ORDER BY Goles DESC");
while($row = mysql_fetch_array($result))
{
$result2 = mysql_query("UPDATE datos SET Goles = '$_POST[Goles]' WHERE Jugador='$_POST[Jugador]'");
}
El Post Jugador viene de un campo HIDDEN en el formulario. Pero me pone todos los Goles a 0. No entiendo el problema!
Gracias
Si te pone todos los goles a cero, es porque debes estar llamando a cada campo de la misma manera. Si a todos los llamas Goles, no sabe cual es el que quieres y te da el último que encuentra.
Deberías ponerlo en formato de matriz:
<input name="Goles[]" type="text">
Y lo mismo para el Jugador. Lo recibirás como $_POST["Goles"][0], $_POST["Goles"][1], etc. Entonces puedes acceder en el bucle mediante las funciones current y next para matrices:
http://es.php.net/manual/es/function.current.php
La verdad es que no me ha quedado muy claro.
"Lo recibirás como POST["Goles"][0], POST["Goles"][1], etc"
No comprendo bien. ¿Tengo qué hacerlo para cada uno de los jugadores?
Saludos, Gracias!
A ver, yo me tengo que imaginar como lo tienes hecho porque no lo he visto.
Por lo que explicas, me imagino que tienes un formulario con unas cuantas filas de jugadores y en cada fila una edit con el número de goles. No sé tampoco porque no lo he visto qué valor tiene el atributo name de esa edit. Me imagino que 'Goles'.
Pero si hay más de una, y tienen el mismo nombre, ¿cómo piensas recuperarlos por separado?
Si todas estas suposiciones mías son ciertas, te he indicado el sistema correcto de hacerlo y te indico que los distintos valores de goles te vendrán entonces en forma de matriz que podrás consultar como cualquier otra matriz.
De ahí a actualizar los datos (supongo que todos y cada uno de ellos), pues es cuestión de aplicar un bucle. Si quieres actualizar sólo uno de ellos, escoge de la matriz el que desees...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas