Foros del Web » Programando para Internet » PHP »

qué puede comprender un "{}" de un if, for, while?

Estas en el tema de qué puede comprender un "{}" de un if, for, while? en el foro de PHP en Foros del Web. Buenas y santas camaradas de la wé!! Tengo una duda que no sé bien cómo plantear, a ver..., bien, la cosa es así tengo un ...
  #1 (permalink)  
Antiguo 13/06/2007, 15:45
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
qué puede comprender un "{}" de un if, for, while?

Buenas y santas camaradas de la wé!!

Tengo una duda que no sé bien cómo plantear, a ver..., bien, la cosa es así tengo un formulario en el que se deben llenar varios campos y resulta que en una de las "secciones" del formulario (por llamarlo de alguna forma) se repiten los campos... una cosa así:


trabajo01:_______________________
area01:__________________________
personal a cargo01:______________

_________________________________

trabajo02:_______________________
area02:__________________________
personal a cargo02:______________

_________________________________

trabajo03:_______________________
area03:__________________________
personal a cargo03:______________



Bueno, como ven esto se repite 3 veces. Entonces la idea es hacer un bucle que vaya generando dicho código html-php, no?, bien, el problema es que desconozco si se puede, de he hecho ahora me tira un error, largar un:

Código PHP:
<?for ($i=1$i<3$i++){?>

<tr><td>... ... ... código html... ... código php... ... código html... ... 

código php.... código html... etc etc</td></tr>

<?}?>

Cómo hago con esto??
Lo de ir llamando los inputs de distintas formas lo tengo mas o menos pensado... el problema es cómo entra dicho código html-php en el bucle... jeje, no sé, nunca antes me había planteado este asunto...

gracias por leer hasta acá,
chapulín
  #2 (permalink)  
Antiguo 13/06/2007, 16:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: qué puede comprender un "{}" de un if, for, while?

Si se puede hacer lo que dices, y de la forma que lo estas haciendo esta bien, que error es el que te pone?
  #3 (permalink)  
Antiguo 13/06/2007, 16:07
Avatar de karemlis  
Fecha de Ingreso: agosto-2006
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

hola chapu

bueno..haber si entendi bien tu pregunta?
necesitas un formulario donde se repita tres veces la siguiente parte

trabajo01:_______________________
area01:__________________________
personal a cargo01:______________


bueno..para eso solo debes escribirla tres veces...
Código PHP:
<form action="script2.php">
<
table>
//para primera seccion
<tr><td>TRABAJO 01</TD><TD><INPUT TYPE="TEXT" name="T1"></td></tr>
<
tr><td>AREA 01</TD><TD><INPUT TYPE="TEXT" name="A1"></td></tr>
<
tr><td>personal a cargo 01</TD><TD><INPUT TYPE="TEXT" name="C1"></td></tr>
//para segunda seccion
<tr><td>TRABAJO 02</TD><TD><INPUT TYPE="TEXT" name="T2"></td></tr>
<
tr><td>AREA 02</TD><TD><INPUT TYPE="TEXT" name="A2"></td></tr>
<
tr><td>personal a cargo 02</TD><TD><INPUT TYPE="TEXT" name="C2"></td></tr>
//para tercera  seccion
<tr><td>TRABAJO 03</TD><TD><INPUT TYPE="TEXT" name="T3"></td></tr>
<
tr><td>AREA 03</TD><TD><INPUT TYPE="TEXT" name="A3"></td></tr>
<
tr><td>personal a cargo 03</TD><TD><INPUT TYPE="TEXT" name="C3"></td></tr>
</
table
bueno y despues procesas cada text por separado en el archivo al que envia el formulario (para este ejemplo script2.php...eso serviria si solo quieres poner 3 y solo 3 veces esta seccion...
es eso??

saludos!!
  #4 (permalink)  
Antiguo 13/06/2007, 16:27
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

Guauuu... qué velocidad para responder, qué buena onda!!

karemlis, justamente lo que no quiero es es repetir código... porque no son solo tres campos son varios y hay mucho php adentro... entonces la mecha es hacerlo una sola vez y darle (x 3), jaja
porque entonces, si alguna vez quiero cambiar esos campos... solo cambio la estructura que se repite y lo demás "se cambia" automáticamente... esa es la idea, la vagancia promueve el trabajo en estos casos... es una gran paradoja!!!

gatorV, el error no es muy claro... 'perá... ahora no me tira el error, pero no me da bola, no responde al for... lo hace solo una vez, como si no existiera el bucle... qué raro... No sé che... qué puede estar pasando???
__________________
chapu
  #5 (permalink)  
Antiguo 13/06/2007, 16:43
Avatar de karemlis  
Fecha de Ingreso: agosto-2006
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

este foro es muuuuyyyy bueno!!

ummm!!
entonces haberrrr

Código PHP:
<form action="script2.php">
<table>
     <?for ($i=1$i<3$i++){
         echo 
'<tr><td>TRABAJO: ' .$i'</td><td><input type="text" name=" T'.$i.' "></tr>';
        echo 
'<tr><td>AREA:' .$i'</td><td><input type="text" name=" A'.$i.' "></tr>';
         echo 
'<tr><td>PERSONAL A CARGO: ' .$i'</td><td><input type="text" name=" C'.$i.' "></tr>';
       }
?> 
</table>
</form>
es algo asi??

la verdad no entiendo muxo lo q deseas hacer...

ojala pueda ayudarte
  #6 (permalink)  
Antiguo 13/06/2007, 16:55
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

Acá estoy de nuevo... gracias karemlis por seguir ahí del otro lado!!

bien lo que vos posteas es justo lo que estoy haciendo... pero, a ver no del todo igual, porque lo que yo busco es que repita código php y código html también... entonces el problema es que no me funciona así...

yo hago un

Código PHP:
...html...
<?for ($i=1$i<3$i++){?>
y acá va código html, del tipo <tr>, <td> <inputs> <etcs>,
y también va código php <? bla bla bla ?>,
y de vuelta un poco de html,
y de vuelta un poco de php,
hasta que cierro:
<?}?>
...html...
bien, esto es lo que hago y es lo que no me funciona, entonces mi duda es si esto se puede hacer o no... (yo veo que no... pero siempre salta alguien y te dice por qué no lo ves... jajaja) y sino qué otra posibilidad hay...

por ahí estuve leyendo que una de las formas del echo es:

Código PHP:
$testo=<<<andamo

<br />hola 'q'ue tal?
haceom
defirosl

andamo;

echo 
$testo
y aquí podría meter el código html y que sea todo php, como en el ejemplo de karemlis, donde el for envuelve todo código php...

pero bien... extraviado estoy y grito por ayuda, jeje,
chapulín
  #7 (permalink)  
Antiguo 13/06/2007, 16:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: qué puede comprender un "{}" de un if, for, while?

Pero no es necesario a ver prueba lo que sigue:
Código PHP:
<table>
<?php for( $i=0$i<5;$i++ ) { ?>
<tr><td><?php echo $i?></td></tr>
<?php ?>
</table>
Te debe de imprimir una tabla con los numeros del 0 al 4 asi que puedes modificarlo a tu gusto yo creo para lo que necesitas.
  #8 (permalink)  
Antiguo 13/06/2007, 17:09
Avatar de karemlis  
Fecha de Ingreso: agosto-2006
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

uuupppssssssss!! ya me tengo q ir..pero seguro mañana estoy por aca otra vez..perdon por no seguir ayudandote!!

suerte!! y cualquier cosa..si mañana no es muy tarde..aki estoy!!

adiossss
  #9 (permalink)  
Antiguo 13/06/2007, 17:11
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

GatorV, qué talca?? gracias por seguir acá firme...

probé tu código y de hecho en el medio le metí más for con llavecitas y demás y todo funciona...

no sé qué podrá ser... tengo miedo, jeje, bueno sigo investigando...
__________________
chapu
  #10 (permalink)  
Antiguo 13/06/2007, 17:25
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

a ver, a ver... vuelvo a leer el post... y descubro que aún no me sé expresar!!!!!! ,

je, anda el código que vos me decís... pero sigue sin andar lo mío... quizás tenga una especie de tope de cantidad de info que puede ir adentro de las llaves o... que no se puedan abrir, supongamos, más de 5 llaves... o algo así... no sé

si alguien sabe al respecto que avise...
__________________
chapu
  #11 (permalink)  
Antiguo 13/06/2007, 18:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: qué puede comprender un "{}" de un if, for, while?

Publica tu codigo completo y te puedo dar una ayudada

Saludos
  #12 (permalink)  
Antiguo 13/06/2007, 18:27
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: qué puede comprender un "{}" de un if, for, while?

Pruebalo asi:

<?for ($i=0; $i<3; $i++){?>

o.o
__________________
Sin Ideas
  #13 (permalink)  
Antiguo 13/06/2007, 21:08
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

Gracias muchachos por seguir sumando aportes...!!

Oso, probé lo que me recomendás y continúa el problema, es que el asunto de fondo es que no anda el bucle, sería.

Bien, no sé qué es lo que puede estar sucediendo... menos mal que existen estas instancias de los foros, porque sino quedé estancado acá (bueno, hubiese repetido a mano las 3 partes... pero qué hubiese sido de mi moral... nooo, jaja)

Publico entonces (siguiendo el sabio consejo del sabio GatorV, je) todo el código para ver si algún osado y samaritano compañero del php se anima a hallarle una solución a este problema que aparentemente es un sinsentido...:

Código PHP:
 <?
  
// acá empezaría el bucle*3
  
for ($i=0$i<3$i++){
  
?>
  
  <tr>
    <td><strong>a)</strong>Empresa, rama de actividad:</td>
    <td bgcolor="#CCCCCC">
      <select name="rama01">
        <?
        $rs_ramas
=mysql_query"DESCRIBE curriculum rama01" );
        
        
// Obtenemos todos los valores posibles del campo enum en un campo de tipo select
        
while ($ligne mysql_fetch_array($rs_ramas)) {
        
          
extract($ligneEXTR_PREFIX_ALL"IN");
          if (
substr($IN_Type,0,4)=='enum'){
            
$lista substr($IN_Type,5,strlen($IN_Type));
            
$lista substr($lista,0,(strlen($lista)-2));
            
$enums explode(',',$lista);
            if (
sizeof($enums)>0){
              for (
$i=0$i<sizeof($enums);$i++){
                
$elem strtr($enums[$i],"'"," ");
                
$elem=trim(htmlentities($elem));
                
// Verifica si hay una opcion elegida
                
if ($elem==$_SESSION['rama01']){
                  echo 
"<option value='".$elem."' selected='selected'>";
                  echo 
ucfirst($elem)."</option>\n";
                }
                else
                  echo 
"<option value='".$elem."'>".ucfirst($elem)."</option>\n";
              }
            }
          }
        }
        
?>
      </select></td>
  </tr>
  <tr>
    <td valign="top">Per&iacute;odo:</td>
    <td>
      <table width="315" border="0" cellpadding="0">
      <tr>
        <td>Desde:</td>
        <td>
          <select name="trabajo01_desde_mes">
            <?
                     
// si se inicializo la variable de sesion: capacitacion desde cuando
            
if (empty($_SESSION['trabajo01_desde']))
              
$_SESSION['trabajo01_desde']="1900-01";
            if (empty(
$_SESSION['trabajo01_hasta']))
              
$_SESSION['trabajo01_hasta']="1900-01";
        
            
// desglosamos estas fechas en mes/ano
            
$trabajo01_desde explode("-",$_SESSION['trabajo01_desde']);
            
$trabajo01_hasta explode("-",$_SESSION['trabajo01_hasta']);
            
            for (
$i 1$i <= 12$i++) {
              if (
$i<=9) {
              
//si $i es menor a 9 e $i coincide con $fecha[1], es decir el mes
                
if ($i==$trabajo01_desde[1])
                  echo 
"<option selected='selected' value=0$i>".$i."</option>\n";        
                else
                  echo 
"<option value='0$i'>".$i."</option>\n";
              }
              else {
                
//si $i coincide con $fecha[1], es decir el mes
                
if ($i==$trabajo01_desde[1])
                  echo 
"<option value='$i' selected='selected'>".$i."</option>\n";        
                else
                  echo 
"<option value='$i'>".$i."</option>\n";
              }
            }
            
?>
          </select>
          (mes),</td>
        <td>
          <select name="trabajo01_desde_ano">
            <?        
            
for ($i 1900$i <= date('Y'); $i++)
              if (
$i==$trabajo01_desde[0])
                echo 
"<option value='$i' selected='selected'>".$i."</option>\n";
              else
                echo 
"<option value='$i'>".$i."</option>\n";
            
?>
          </select>
          (a&ntilde;o)</td>
      </tr>
      <tr>
        <td>Hasta:</td>
        <td>
          <select name="trabajo01_hasta_mes">
            <?
            
for ($i 1$i <= 12$i++) {
              if (
$i<=9) {
              
//si $i es menor a 9 e $i coincide con $fecha[1], es decir el mes
                
if ($i==$trabajo01_hasta[1])
                  echo 
"<option selected='selected' value=0$i>".$i."</option>\n";        
                else
                  echo 
"<option value='0$i'>".$i."</option>\n";
              }
              else {
                
//
                
if ($i==$trabajo01_hasta[1])
                  echo 
"<option value='$i' selected='selected'>".$i."</option>\n";        
                else
                  echo 
"<option value='$i'>".$i."</option>\n";
              }
            }
            
?>
          </select>
          (mes),
        </td>
        <td>
          <select name="trabajo01_hasta_ano">
            <?        
            
for ($i 1900$i <= date('Y'); $i++)
              if (
$i==$trabajo01_hasta[0])
                echo 
"<option value='$i' selected='selected'>".$i."</option>\n";
              else
                echo 
"<option value='$i'>".$i."</option>\n";
            
?>
          </select>
          (a&ntilde;o)
        </td>
      </tr>
    </table>    </td>
  </tr>
  <tr>
    <td valign="top">Nombre del puesto: </td>
    <td bgcolor="#CCCCCC">
      <select name="puesto01">
        <?
        $rs_puestos
=mysql_query"DESCRIBE curriculum puesto01" );
        
        
// Obtenemos todos los valores posibles del campo enum en un campo de tipo select
        
while ($ligne mysql_fetch_array($rs_puestos)) {
        
          
extract($ligneEXTR_PREFIX_ALL"IN");
          if (
substr($IN_Type,0,4)=='enum'){
            
$lista substr($IN_Type,5,strlen($IN_Type));
            
$lista substr($lista,0,(strlen($lista)-2));
            
$enums explode(',',$lista);
            if (
sizeof($enums)>0){
              for (
$i=0$i<sizeof($enums);$i++){
                
$elem strtr($enums[$i],"'"," ");
                
$elem=trim(htmlentities($elem));
                
// Verifica si hay una opcion elegida
                
if ($elem==$_SESSION['puesto01']){
                  echo 
"<option value=\"".$elem."\" selected=\"selected\">";
                  echo 
ucfirst($elem)."</option>\n";
                }
                else
                  echo 
"<option value=\"".$elem."\">".ucfirst($elem)."</option>\n";
              }
            }
          }
        }
        
?>
      </select></td>
  </tr>
  <tr>
    <td>Personal a cargo en n&uacute;meros:</td>
    <td>
      <select name="personal_acargo01">
        <?
        $rs_personal_acargo
=mysql_query"DESCRIBE curriculum personal_acargo01" );
        
        
// Obtenemos todos los valores posibles del campo enum en un campo de tipo select
        
while ($ligne mysql_fetch_array($rs_personal_acargo)) {
        
          
extract($ligneEXTR_PREFIX_ALL"IN");
          if (
substr($IN_Type,0,4)=='enum'){
            
$lista substr($IN_Type,5,strlen($IN_Type));
            
$lista substr($lista,0,(strlen($lista)-2));
            
$enums explode(',',$lista);
            if (
sizeof($enums)>0){
              for (
$i=0$i<sizeof($enums);$i++){
                
$elem strtr($enums[$i],"'"," ");
                
$elem=trim(htmlentities($elem));
                
// Verifica si hay una opcion elegida
                
if ($elem==$_SESSION['personal_acargo01']){
                  echo 
"<option value='".$elem."\" selected='selected'>";
                  echo 
ucfirst($elem)."</option>\n";
                }
                else
                  echo 
"<option value='".$elem."'>".ucfirst($elem)."</option>\n";
              }
            }
          }
        }
        
?>
      </select>    </td>
  </tr>
  <tr>
    <td valign="top">Descripcion de tareas realizadas</td>
    <td>
      <textarea name="descripcion_tareas01" cols="40" rows="4"><? if (!empty($_SESSION['descripcion_tareas01'])) echo $_SESSION['descripcion_tareas01'];?></textarea>    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="8" colspan="2" bgcolor="#CCCCCC"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  
  <?
  
// hasta acá llegaría el bucle
  
}
  
?>
...es un poco largo... jeje, pero justamente por eso no quiero escribirlo 3 veces... ¿qué les parece?, ¿a dónde estará el problema??!
__________________
chapu
  #14 (permalink)  
Antiguo 13/06/2007, 21:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: qué puede comprender un "{}" de un if, for, while?

Ya encontre tu problema, el problema es que estas repitiendo el contador varias veces a lo largo de tu codigo es decir:
Código PHP:
for( $i 0$i 3$i++ ) {
     for( 
$i 0$i 4$i++) { // Esto es un error hay que cambiar la variable para contar

     
}

Checa tus ciclos internos y usa otras variables para contar
  #15 (permalink)  
Antiguo 13/06/2007, 21:20
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: qué puede comprender un "{}" de un if, for, while?

heyyyyyyyyyy, jajaja, qué tipo!!, mil gracias GatorV, te zarpaste en buena onda... Gracias en serio, nunca me hubiese percatado de ello... dicen que lo esencial es invisible a los ojos... lo obvio también, jeje, o algo así...
__________________
chapu
  #16 (permalink)  
Antiguo 13/06/2007, 21:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: qué puede comprender un "{}" de un if, for, while?

No de que para eso estamos
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:37.