Foros del Web » Programando para Internet » PHP »

problemas con un ciclo while

Estas en el tema de problemas con un ciclo while en el foro de PHP en Foros del Web. Tengo un problema, en un textarea recopilo unos IDs de los empleados a los que se les cito para una junta, pero antes de insertar ...
  #1 (permalink)  
Antiguo 18/01/2005, 12:59
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 13 años, 1 mes
Puntos: 0
problemas con un ciclo while

Tengo un problema, en un textarea recopilo unos IDs de los empleados a los que se les cito para una junta, pero antes de insertar los IDs tengo que verificar que existan los empleados, asi que obtengo la longitud del textarea y lo divido entre 5 (numero de caracteres del ID) para obtener el número de empleados, entonces voy extrayendo de uno en uno los empleados con un substr y hago una consulta en la tabla empleados para checar que si se encuentre, y si se encuentra los voy concatenando, si no pues solo incremento, y a lo ultimo solo inserto, todo parece lógico, pero lo raro es que solo me inserta el primero, cuando incrementa la segunda vez algo pasa que ya no extrae el resultado y se va incrementando la variable hasta que llega ala ultima vuelta y entonces si extrae el ID pero solo toma el ultimo dígito, les mando el código para que lo chequen, gracias.

$i=0;
$j=1;
$n=strlen($rpes);//obtiene el numero de caracteres de la cadena
$nr=$n/5;//obtengo el numero de empleados
while ($j<=$nr)
{
$text=substr($rpes,$i,5);
$qry=mysql_query("select * from empleados where rpe='".$text."'",$atcon) or die(mysql_error());
if($row=mysql_fetch_array($qry))
{
$flag=1;
$rpess=$rpess.$text;
} else {
print "<script>alert('El empleado ".$text." no existe')</script>";
}
$i=$i+5;
$j++;
}
if($flag==1)
{
$qry= mysql_query("insert into reuniones (fecha,cve_area_resp,rpe, hora_inicio,hora_fin,anio,mes,prod,segehi,einte,ci rca,otras,lugar,totras, totrol) values('$FechaInicial', '$cve_ag', '$rpess','$hora_inicio','$hora_fin','$a','$m','$ti po1','$tipo2', '$tipo3', '$tipo4','$tipo5','$lugar', '$otras','$otro')") or die(mysql_error());

print "<script>alert('Los registros fueron insertados')</script>";
print "<script> location.href = 'n_reuniones.php' </script>";
}


Gracias por su ayuda.
  #2 (permalink)  
Antiguo 18/01/2005, 17:13
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Si hay algún error en el código no lo he encontrado, lo único que se me ocurre es que los ids que le envías con el textarea se envíen mal y así cuando tratas de obtener cada id por separado no lo hace correctamente... prueba ha hacer un echo $rpes; para comprobar esto. Prueba también a enviar los ids con urlencode(); y luego con urldecode($rpes);

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 18/01/2005 a las 17:15
  #3 (permalink)  
Antiguo 18/01/2005, 23:45
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 13 años
Puntos: 0
Hola que tal si no me equivoco creo que estas incrementado i en 5 en 5 y no deberia de ser de 1 en 1?
porque no pruebas asi: $i=$i+1;

Suerte y Salu2.

Bye
__________________
Atte. Mohamed :aplauso:
  #4 (permalink)  
Antiguo 19/01/2005, 11:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 13 años, 1 mes
Puntos: 0
Se debe incrementar de 5 en 5 por que un ID esta compuesto por 5 caracteres.
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 1 personas (incluyéndote)




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