Foros del Web » Programando para Internet » PHP »

for dentro de switch... se puede?

Estas en el tema de for dentro de switch... se puede? en el foro de PHP en Foros del Web. hola amigos... mi pregunta es si se podria hacer un for dentro un switch para evitar poner case "1": ..... case "2":.... etc. (mas de ...
  #1 (permalink)  
Antiguo 09/12/2003, 13:33
RM3
 
Fecha de Ingreso: septiembre-2003
Mensajes: 43
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta for dentro de switch... se puede?

hola amigos...

mi pregunta es si se podria hacer un for dentro un switch para evitar poner case "1": ..... case "2":.... etc. (mas de 500 registros en una BD por ejemplo)

o sea... se puede poner... for i.... etc, case "i": .... siendo i un contador o el id de un registro? no me explico como

gracias de antemano

PS: algun ejemplillo del uso de esto?

Última edición por RM3; 09/12/2003 a las 13:34
  #2 (permalink)  
Antiguo 09/12/2003, 15:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Pues asi directamente, no creo.

Pero creo que si puedes generar los case con un bucle, quizas no necesitas el switch. Quizas si explicas tu caso le veo sentido.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 09/12/2003, 17:22
RM3
 
Fecha de Ingreso: septiembre-2003
Mensajes: 43
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Josemi pues es algo asi...

quiero recojer estos datos...

$sql = mysql_query("SELECT m.id,m.nombre,m.empresa,m.email,r.rotulo FROM mailer m left join rotulo r on m.rotulo_id=r.idrot WHERE m.grupo_id=$grupo");
while(@$row=mysql_fetch_array($sql)){
$nombre = $row['nombre'];
$empresa = $row['empresa'];
$para = $row['email'];
$rotulo=$row['rotulo'];
$id=$row['id'];

y luego el id quiero usarlo para saber quienes han leido los mails, con algo que pusieron antes en este foro...

<img src='http://www.miweb.com/admin/avisa_email.php?id=".echo $id;."' width='1' height='1'>

y ahi esta el problema...

no se si esta bien puesto el echo ahi y en el avisa_email.php

$id=@$_GET['id'];
switch ($id) {
case 1:
(algun update en un campo de la tabla)
break;
case 2:
(algun update en un campo de la tabla)
break;
case 3:
(algun update en un campo de la tabla)
break;
case 4:
(algun update en un campo de la tabla)
break;
............
etc
............

default:
include('izq.php');
}

ahi es donde no se si usar algun bucle o for o no se

bueno, no se si me explique o lo enrede mas

pero gracias por la ayudaaa

heeeeeeellllppppp
  #4 (permalink)  
Antiguo 10/12/2003, 02:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Pero, ¿que seria lo de (algun update en un campo de la tabla)? Porque si es la misma consulta para todos los casos cambiando solo el id, no es necesario el switch. Pon el codigo que quieres generar para 2 o 3 case. Dependiendo de lo que quieras hacer, quizas incluso puedes usar un array de indices el id y de contenido la consulta. Algo asi:
Código PHP:
$consultas=Array();
for (
lo que sea) {
  
// tu bucle para crear tu array
  // seria mas o menos el bucle que tenias pensado para tu switch
  
$consultas[$id_consulta]=$consulta;
}
// y ahora tu codigo
$id=@$_GET['id'];
$consulta_sql=$consultas[$id];
mysql_query($consulta); 
Mas o menos asi.

Pero ya te dijo que depende muy mucho de lo que quieras hacer dentro de cada case.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 10/12/2003, 08:15
RM3
 
Fecha de Ingreso: septiembre-2003
Mensajes: 43
Antigüedad: 20 años, 6 meses
Puntos: 0
super...

gracias maestro....

en realidad era eso lo que necesitaba y no veia la manera de hacerlo

los updates son distintos, pero con lo que me diste todo va bien.

tu codigo me ha venido al pelo...

mil gracias

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 16:12.