Foros del Web » Programando para Internet » PHP »

duda sobre registro con php y mysql

Estas en el tema de duda sobre registro con php y mysql en el foro de PHP en Foros del Web. Hola soy nuevo en esto y necesito una ayuda. tengo un formulario con select donde sacamos el dia y la hora. un usuario elije 4 ...
  #1 (permalink)  
Antiguo 01/01/2010, 20:01
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
duda sobre registro con php y mysql

Hola soy nuevo en esto y necesito una ayuda.

tengo un formulario con select donde sacamos el dia y la hora.
un usuario elije 4 dias y 4 horas. el error ocurre cuando al registrarlo en la base de datos solo se registra el ultimo dia y la ultima hora seleccionada y nos las otras 3 anteriores. a que se debe esto? como arreglarlo?

lo agradesco enormemente quien me pueda ayudar.

PD. disculpen si el tema no va aqui, si el mod correspondiente pueda moverlo. gracias.
  #2 (permalink)  
Antiguo 01/01/2010, 20:04
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: duda sobre registro con php y mysql

Lo ideal es que pegues el codigo de tu formulario, asi como la parte donde ejecutas el mysql_query()

Aunque tal y por lo que dices, creo que llamaste a los <input> de tu formulario con el mismo name="id"

saludos
  #3 (permalink)  
Antiguo 02/01/2010, 08:06
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: duda sobre registro con php y mysql

Código PHP:
<form method="post" action="turnos.php">
<
center><table class="tomadeturnos">
<
td>
<
select name="dias[]" size="5" multiple>
<
option value="Lunes">Lunes</option>
<
option value="Martes">Martes</option>
<
option value="Miercoles">Miercoles</option>
<
option value="Jueves">Jueves</option>
<
option value="Viernes">Viernes</option>
</
select>
<
select name="horas[]" size="5" multiple>
<
option value="08.30">08.30</option>
<
option value="09.00">09.00</option>
<
option value="10.00">10.00</option>
<
option value="11.00">11.00</option>
<
option value="12.00">12.00</option>
<
option value="13.30">13.30</option>
<
option value="14.30">14.30</option>
<
option value="15.30">15.30</option>
<
option value="16.30">16.30</option>
<
option value="18.00">18.00</option>
<
option value="19.00">19.00</option>
</
select></td>
<
td></td>
<
td>
<
select name="dias[]" size="5" multiple>
<
option value="Lunes">Lunes</option>
<
option value="Martes">Martes</option>
<
option value="Miercoles">Miercoles</option>
<
option value="Jueves">Jueves</option>
<
option value="Viernes">Viernes</option>
</
select>
<
select name="horas[]" size="5" multiple>
<
option value="08.30">08.30</option>
<
option value="09.00">09.00</option>
<
option value="10.00">10.00</option>
<
option value="11.00">11.00</option>
<
option value="12.00">12.00</option>
<
option value="13.30">13.30</option>
<
option value="14.30">14.30</option>
<
option value="15.30">15.30</option>
<
option value="16.30">16.30</option>
<
option value="18.00">18.00</option>
<
option value="19.00">19.00</option>
</
select></td>
<
td></td>
<
td>
<
select name="dias[]" size="5" multiple>
<
option value="Lunes">Lunes</option>
<
option value="Martes">Martes</option>
<
option value="Miercoles">Miercoles</option>
<
option value="Jueves">Jueves</option>
<
option value="Viernes">Viernes</option>
</
select>
<
select name="horas[]" size="5" multiple>
<
option value="08.30">08.30</option>
<
option value="09.00">09.00</option>
<
option value="10.00">10.00</option>
<
option value="11.00">11.00</option>
<
option value="12.00">12.00</option>
<
option value="13.30">13.30</option>
<
option value="14.30">14.30</option>
<
option value="15.30">15.30</option>
<
option value="16.30">16.30</option>
<
option value="18.00">18.00</option>
<
option value="19.00">19.00</option>
</
select></td>
<
td></td>
<
td>
<
select name="dias[]" size="5" multiple>
<
option value="Sabado">Sabado</option>
<
option value="Domingo">Domingo</option>
</
select>
<
select name="horas[]" size="5" multiple>
<
option value="08.30">08.30</option>
<
option value="09.00">09.00</option>
<
option value="10.00">10.00</option>
<
option value="11.00">11.00</option>
<
option value="12.00">12.00</option>
<
option value="13.30">13.30</option>
<
option value="14.30">14.30</option>
<
option value="15.30">15.30</option>
<
option value="16.30">16.30</option>
<
option value="18.00">18.00</option>
<
option value="19.00">19.00</option>
</
select></td>
</
table></center><br>

<
center><input type="submit" value="Enviar"></center>
</
form

Código PHP:
<?
include('conex.php');
$link=conectarse();
$dias=$_POST["dias"]; 
$horas=$_POST["horas"];
for (
$i=0;$i<count($dias),$i<count($horas);$i++)    
{
$consulta="insert into turnos(dia,hora) values('$dias[$i]','$horas[$i]')";}
mysql_query($consulta,$link);
?>
bueno realmente no se si sea lo indicado hacerlo asi (el 2 codigo, el que procesa) no lo tengo muy claro.

se agradece.
  #4 (permalink)  
Antiguo 02/01/2010, 08:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda sobre registro con php y mysql

el código que utilizas es correcto, pero aún así puedes usar algo mas corto...

además, debes depurar tus variables antes de utilizarlas... para prevenir equivocaciones
Código PHP:
var_dump($_POST);
foreach (
$_POST['foo'] as $key => $value)
{
  echo 
'<pre>';
  
print_r($value); // $_POST['foo'][$key]
  
print_r($_POST['bar'][$key]);
  echo 
'</pre>';

una cosa muy importante es mantener asociados tus índices name, de alguna forma... aunque sea numérica
Código HTML:
<input name="foo[1]"/>
<select name="bar[1]"/>

<input name="foo[2]"/>
<select name="bar[2]"/> 
de este modo conservamos una lógica secuencial en nuestra información...

Edito: recién noté que usas multiple como atributo de los <select/>, esto cambia radicalmente el comportamiento de la variable que emplearías en tu script.... me parece, que sin dicho atributo se consigue un solo valor por <select/>, de otra forma se convierte en array() el valor con las opciones seleccionadas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 02/01/2010 a las 08:22 Razón: código
  #5 (permalink)  
Antiguo 02/01/2010, 16:39
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: duda sobre registro con php y mysql

se pueden hacer 2 consultas?

lo que quiero sq tbm registrar el nombre de usuario. osea el nombre de quien elijio las 4 horas, pero si lo hago dentro del for se registrara el nombre las 4 veces. y me gustaria que se regstrara solo una vez y las 4 horas.

aun tengo el problema, aunque seleccione los 4 dias y las 4 horas siempre se registra solo el ultimo dato osea sabado o domingo y su hora.

una ayudita al desamparado :P se agradecen las respuestas :D
  #6 (permalink)  
Antiguo 08/01/2010, 21:14
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: duda sobre registro con php y mysql

Cita:
Iniciado por pateketrueke Ver Mensaje
el código que utilizas es correcto, pero aún así puedes usar algo mas corto...

además, debes depurar tus variables antes de utilizarlas... para prevenir equivocaciones
Código PHP:
var_dump($_POST);
foreach (
$_POST['foo'] as $key => $value)
{
  echo 
'<pre>';
  
print_r($value); // $_POST['foo'][$key]
  
print_r($_POST['bar'][$key]);
  echo 
'</pre>';

una cosa muy importante es mantener asociados tus índices name, de alguna forma... aunque sea numérica
Código HTML:
<input name="foo[1]"/>
<select name="bar[1]"/>

<input name="foo[2]"/>
<select name="bar[2]"/> 
de este modo conservamos una lógica secuencial en nuestra información...

Edito: recién noté que usas multiple como atributo de los <select/>, esto cambia radicalmente el comportamiento de la variable que emplearías en tu script.... me parece, que sin dicho atributo se consigue un solo valor por <select/>, de otra forma se convierte en array() el valor con las opciones seleccionadas
trate de esa forma, sacandole el multiple.. pero tampoco se puede, de igual forma me registra solo el ultimo dato, sea sabado o domingo.
  #7 (permalink)  
Antiguo 08/01/2010, 22:10
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: duda sobre registro con php y mysql

ya resolvi el error!! se trataba de que el query tenia que ir dentro del for...

Código PHP:
Ver original
  1. <?
  2. include('conex.php');
  3. $link=conectarse();
  4. $dias=$_POST["dias"];  
  5. $horas=$_POST["horas"];
  6. for ($i=0;$i<count($dias),$i<count($horas);$i++)    
  7. {$consulta="insert into turnos(dia,hora) values('$dias[$i]','$horas[$i]')";
  8. mysql_query($consulta,$link);}
  9. ?>

ahora si se registran las 4 horas y los 4 dias ^^

Etiquetas: mysql, registro
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 05:03.