Foros del Web » Programando para Internet » PHP »

POST, array y DB

Estas en el tema de POST, array y DB en el foro de PHP en Foros del Web. Buenas estoy intentando armar una planilla de equipo de futbol donde cargamos por inputs , las amarillas, rojas, etc. de cada jugador en ese partido. ...
  #1 (permalink)  
Antiguo 18/03/2010, 10:08
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
POST, array y DB

Buenas estoy intentando armar una planilla de equipo de futbol donde cargamos por inputs , las amarillas, rojas, etc. de cada jugador en ese partido.



no se q tal será mi idea, fue la primera q se me ocurrió si aportan alguna otra bienvenida sea.

mediante POST yo envio esos datos.

lo que no se me ocurre bien, es como separar cada jugador, para grabar sus datos en la base de datos,

es decir mediante algun while q recorrar una a una las lineas y les vaya haciendo un update en la tabla jugadores.

espero puedan darme algun tip.

Saludos.
  #2 (permalink)  
Antiguo 18/03/2010, 10:19
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: POST, array y DB

¿Algún error?
Creo haber entendido que lo q quieres es editar datos in situ ¿no? AJAX es la respuesta
  #3 (permalink)  
Antiguo 18/03/2010, 10:29
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: POST, array y DB

ehm, lo que no se como hacer es como agarrar todos esos datos del post y separarlos para una consulta.

porque al ser de esa manera por cada radio de las amarillas se tiene q llamar distinto ej la amarilla de la primer linea se llama amarilla_33256456 o la podria llamar amarilla[33256456]
eso no se como hacer, como llamarlas y como separarlas cuando vengas por POST
  #4 (permalink)  
Antiguo 18/03/2010, 10:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: POST, array y DB

lo ideal es nombrarlas con la notación de array, osea...
Código HTML:
<input name="foo[bar]"/> 
así, en PHP lo que recibes es un solo arreglo... ;)
Código PHP:
var_dump($_POST['foo']); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/03/2010, 11:06
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: POST, array y DB

creo q era eso mismo lo q necesitaba, ahora voy a ver como trabajo con la salida del var_dump... cualquier cosa vuelvo aquí

gracias !
  #6 (permalink)  
Antiguo 18/03/2010, 11:14
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: POST, array y DB

Porque no pones un contador?

Código PHP:
Ver original
  1. $cont = 1;
  2. while($consulta){
  3.  echo "<input name='jugador".$cont."' type='text'/>";
  4.  $cont++;
  5. }

Y después al recojer los datos del post lo mismo, cada jugador tendrá un numero empezando desde el 1.

Saludos.
  #7 (permalink)  
Antiguo 18/03/2010, 11:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: POST, array y DB

Cita:
Iniciado por dannytm Ver Mensaje
Porque no pones un contador?

Código PHP:
Ver original
  1. $cont = 1;
  2. while($consulta){
  3.  echo "<input name='jugador".$cont."' type='text'/>";
  4.  $cont++;
  5. }

Y después al recojer los datos del post lo mismo, cada jugador tendrá un numero empezando desde el 1.

Saludos.
precisamente esta es la opción mas burda de todas.. aunque el resultado es similar no es recomendable, lo mejor es hacerlo con name del tipo array...

así todo es automático, no hay que crear contadores... ya que los arreglos son auto-indexados, o bien, pueden ser asociativos... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/03/2010, 11:22
 
Fecha de Ingreso: noviembre-2006
Ubicación: Alicante
Mensajes: 107
Antigüedad: 18 años
Puntos: 0
Respuesta: POST, array y DB

Cita:
Iniciado por pateketrueke Ver Mensaje
precisamente esta es la opción mas burda de todas.. aunque el resultado es similar no es recomendable, lo mejor es hacerlo con name del tipo array...

así todo es automático, no hay que crear contadores... ya que los arreglos son auto-indexados, o bien, pueden ser asociativos... ;)
Podrías ponerme un poco de código o indicarme algún sitio donde pueda ver lo que comentas, me interesa ver esa opción que das con mas desarrollo.
  #9 (permalink)  
Antiguo 18/03/2010, 11:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: POST, array y DB

Cita:
Iniciado por pateketrueke Ver Mensaje
precisamente esta es la opción mas burda de todas.. aunque el resultado es similar no es recomendable, lo mejor es hacerlo con name del tipo array...

así todo es automático, no hay que crear contadores... ya que los arreglos son auto-indexados, o bien, pueden ser asociativos... ;)
Sólo daba otra respuesta, pero ya que es tan burda a la próxima me callo.

Saludos.
  #10 (permalink)  
Antiguo 18/03/2010, 11:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: POST, array y DB

al hacer un
Código PHP:
var_dump($_POST['amarilla']); 
esta es un ejemplo de la salida

[33256456]=> string(1) "0"
[35212025]=> string(1) "1"
[31111235]=> string(1) "0"

Código PHP:
var_dump($_POST['roja']); 
[33256456]=> string(1) "1"
[35212025]=> string(1) "0"
[31111235]=> string(1) "0"

y esto sería la otra.

Ahora como junto eso para q luego mi consulta sea del tipo

"UPDATE jugador SET amarillas=amarillas+(variable amarillas), rojas =rojas+(variable rojas) WHERE jugador.dni= Variable del DNI"
  #11 (permalink)  
Antiguo 18/03/2010, 11:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: POST, array y DB

Cita:
Iniciado por lagunafmr Ver Mensaje
Podrías ponerme un poco de código o indicarme algún sitio donde pueda ver lo que comentas, me interesa ver esa opción que das con mas desarrollo.
usando la forma de contadores...
Código PHP:
for ($i 0$i 10; ++$i)
{
  echo 
'<input name="foo' $i '"/>';

bien, al parecer funciona... e imprime los distintos inputs con sus name de una forma poco dinámica...

ahora... para recibir esta información es necesario saber la cantidad de elementos que hemos desplegado antes... ¿como lo hacemos??

pues es simple... volvemos a usar un contador
Código PHP:
for ($i 0$i 10; ++$i)
{
  
$foo $_POST['foo' $i];

y es verdad, no deja de ser una alternativa útil... pero no es lo mejor, ni siquiera es lo mas óptimo... ya que hemos usado dos ciclos idénticos, ¿que caso tenía??

¿y que sucede si en la pagina de destino desconocemos el numero total de elementos? ¿como hacer el ciclo adecuado??, según mi experiencia esto trae mas problemas que soluciones...


pero, y si usamos la notación de array?
Código PHP:
for ($i 0$i 10; ++$i)
{
  echo 
'<input name="foo[' $i ']"/>';

en todo caso en esta parte del proceso no cambia mucho la sintaxis...

pero al resolver la captura de los valores vemos ya la ventaja
Código PHP:
foreach ($_POST['foo'] as $key => $value)
{
  
// ...

simple, al ser un arreglo podemos trabajar con el dinámicamente sin tener que saber el numero de elementos a inspeccionar...

así jamás necesitaremos de nuevo el contador, y si queremos saber el numero de elementos pues usamos count(), sizeof(), etc... ;)


en resumen, es mejor trabajar con colecciones de datos en forma de arreglo que hacer trucos chinos numerando innecesariamente las variables...

un ejemplo, sumar todos los valores de determinada colección de elementos....

si usamos la notación de array, con array_sum() y bingo!
si no... pues hay que volver a hacer un ciclo, etc, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 18/03/2010, 12:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: POST, array y DB

Finalmente lo resolví de esta manera, no se si será la manera menos optima, a ver q opinan:

Código PHP:
foreach ($_POST['jugado'] as $key_j => $value_j) {
        if (
$value_j !=0){
    
            foreach (
$_POST['amarilla'] as $key_a => $value_a) {
                            
                foreach (
$_POST['roja'] as $key_r => $value_r) {
        
                    foreach (
$_POST['goles'] as $key_g => $value_g) {
                        
                        if (
$key_j == $key_a && $key_a == $key_r && $key_r == $key_g){
                            
$sql "UPDATE jugador SET jugados=jugados+1, amarillas=amarillas+$value_a, rojas=rojas+$value_r, goles=goles+$value_g WHERE jugador.dni = $key_j";
                            
$rs=$conn->Execute($sql);
//                            echo "Key: $key_a; Amarillas: $value_a Rojas: $value_r Jugo: $value_j Goles: $value_g<br />\n";
                        
}
                    }
                }
            }
        }
    } 
recorre el primer array donde veo si jugó o no partido, luego compara los key para hacer el update jugador por jugador.

saludos.
  #13 (permalink)  
Antiguo 19/03/2010, 01:49
 
Fecha de Ingreso: noviembre-2006
Ubicación: Alicante
Mensajes: 107
Antigüedad: 18 años
Puntos: 0
Respuesta: POST, array y DB

Gracias pateketrueke.

Es bastante útil esta opción que comentas. La pondré en práctica.
  #14 (permalink)  
Antiguo 19/03/2010, 13:18
 
Fecha de Ingreso: marzo-2010
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: POST, array y DB

me parecio muy util la respuesta, y me gustaria implemtarla

pero quiero salir de algunas dudas, por ejemplo:

en una tabla llamada trabajadores con los campos: NOMBRE Y OB

teniendo un formulario como este



[URL="http://www.overload.260mb.com/img/form.bmp"]http://www.overload.260mb.com/img/form.bmp[/URL]

<a href="http://www.overload.260mb.com/img/form.bmp">Formulario</a>

y con los campos input como sigue:

Código HTML:
Ver original
  1. </form>
  2. <input type="text" name="foo[NOMBRE]" value="Juan"/>
  3. <input type="text" name="foo[OB]" value="Pedro"/>
  4. <input type="submit" name="Submit" value="Enviar">
  5. </form>


Código PHP:
Ver original
  1. <?
  2. include('conexion.php');
  3.  
  4. mysql_query("INSERT INTO trabajadores (NOMBRE,OB) VALUES('$_POST['foo[NOMBRE]']','$_POST['foo[OB]']'");
  5.  
  6. ?>


la duda es si se cargan asi los datos a la tabla

Última edición por overloadxd; 19/03/2010 a las 13:24

Etiquetas: post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:14.