Foros del Web » Programando para Internet » PHP »

No se como guardar esto

Estas en el tema de No se como guardar esto en el foro de PHP en Foros del Web. Hola amigos tengo que guardar los datos que seleccione el usuario en un formato de apuestas de carreras de caballos pero no se como hacerlo. ...
  #1 (permalink)  
Antiguo 15/12/2009, 15:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Exclamación No se como guardar esto

Hola amigos tengo que guardar los datos que seleccione el usuario en un formato de apuestas de carreras de caballos pero no se como hacerlo. El punto es que tengo que guardar en la base de datos mysql la carrera que escogio y el o los caballos. En este caso es la carrera 1 con 14 caballos de los cuales el usuario escoge uno o varios. Le puse el name como caballo[1], caballo[2], etc buscando una forma de identificarlos puesto que el value siempre es uno porque necesito que al marcar alguno de ls checkbox se sume 1 y si lo desmarca se resta 1.

Código PHP:
 <tr>
                                  <
td valign="top" bgcolor="#FF9900" class="Estilo12">&nbsp;</td>
                                  <
td class="Estilo12">&nbsp;</td>
                                  <
td class="Estilo12"><div align="center">
                                      <
input name="caballo[1]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="caballo[2]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="caballo[3]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[4]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[5]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[6]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[7]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[8]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[9]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[10]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[11]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[12]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[13]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="carrera1[14]" type="checkbox" onClick="Suma(this.checked,this.value)" value="1">
                                  </
div></td>
                                  <
td><div align="center">
                                      <
input name="total" type="text" value="0" size="20">
                                  </
div></td>
                                </
tr
Estoy muy confundida. Podrian sugerirme como puedo manejar esto.

De verdad se los agrdezco.
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 15/12/2009, 17:51
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: No se como guardar esto

En la misma fila estás mezclando caballos con carrera.
Podrías armar algo así => name="carrera[1][]" (el primer índice se corresponde con los caballos)
  #3 (permalink)  
Antiguo 15/12/2009, 18:09
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No se como guardar esto

Ah si es que me equivoque todos eran carrera[1], Carrera [2] etc. Entonces tu me dices que name="carrera[1][]" (el primer índice se corresponde con los caballos). No entiendo????? Quedaria asi cada checkbox carrera[1][1], carrera[1][2], etc.? Y cuando los recoja en la otra pagina con post como hago para saber cual es cual?

Disculpen que no sepa como plantear esto, necesito ayuda.
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 15/12/2009, 18:51
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: No se como guardar esto

exacto, las variables tendrán el siguiente formato:

primer caballo:
name="carrera[1][1]"
...
name="carrera[1][14]"

segundo caballo:
name="carrera[2][1]"
...
name="carrera[2][14]"

luego, dentro del archivo en donde tenés definido el action del form, has esto:

Código PHP:
$checkbox $_POST['carrera']; 
y luego puedes hacer un var_dump($checkbox) para reconocer las variables

saludos
  #5 (permalink)  
Antiguo 15/12/2009, 20:22
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No se como guardar esto

Gracias CdG, funciona bien y me devuelve por ejemplo esto:

array(1) { [1]=>
array(3) { [1]=> string(1) "1" [3]=> string(1) "1" [5]=> string(1) "1" } }

que seria carrera 1, caballos 1, 3, 5

lo que me falta es saber como almaceno cada una en una variable para guardar en la base de datos mysql.

gracias
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 15/12/2009, 21:20
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: No se como guardar esto

a ver si esto te sirve:

Código PHP:
<?php

$checkbox 
$_POST['carrera'];

foreach(
$checkbox as $carrera => $valor){
    
$cadenaCaballos "";
    foreach(
$valor as $caballo => $valor){
        
$cadenaCaballos .= "'".$caballo "',";
    }
    
$cadenaCaballos substr ($cadenaCaballos0, -1);
    
$sql "INSERT INTO table (columna1,columna2...) VALUES ('" $carrera ."'," $cadenaCaballos ");";
}
//así quedaría la consulta
echo $sql;
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 06:37.