Problema con tabla y ciclo FOR

Iniciado por mokoMonster, 8 Enero 2011, 21:01 PM

0 Miembros y 1 Visitante están viendo este tema.

mokoMonster

Hola,

bueno es que tengo que hacer una tabla donde $dias sean las columnas, y $pisos sean las filas, pero cuando pongo el ciclo para que primero se creen los días y comprobar que no hay error, me las hace filas, no he encontrado la manera para que me las haga columnas como debe ser, pero no se como continuar, he tratado de varias formas pero aun no lo consigo.

Espero me puedan ayudar, les dejo el código.

$dias=31;
// $pisos=10;
for($col=0;$col<$dias;$col++)
{
echo '<table width="300" border="1" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td>'.$col.'</td>';
echo '</tr></table>';
}



Saludos y gracias.  :o
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

xassiz~

Con ese ciclo estás comenzando tablas nuevas en vez de añadir filas, fíjate bien :xD

RedZer

Código (php) [Seleccionar]


<table width="200" border="1">
<tr>
    <td>dias1 </td>
    <td>dia 2</td>
    <td>dia 3</td>
  </tr>
  <?php 
 $dias
=31;
$pisos=10;

 
for(
$col=0;$col<$dias;$col++)
{



echo "<tr>
    <td>
$col</td>
    <td>
$col</td>
    <td>
$col</td>
  </tr>"
;


}
 
?>


 
</table>

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

mokoMonster

Cita de: pablomi en  8 Enero 2011, 21:10 PM
Con ese ciclo estás comenzando tablas nuevas en vez de añadir filas, fíjate bien :xD
Oops! Es cierto, como no me di cuenta. Probe sacando donde comienza la tabla del ciclo pero aun así no me funcionó.

Y RedZer, mira lo que tengo que hacer exactamente es, mediante una función que devuelve el numero de días del mes actual ($dias) y mediante otra función que devuelve el numero de pisos actuales disponibles ($pisos) mediante a eso tengo que hacer la tabla, pero las dos variables pueden cambiar por lo cual no puedo repetir el <td>$col</td>, no se si me explico, podrías orientarme un poco mas por favor?

Saludos
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Spider-Net

Debes usar for anidados.

Código (php) [Seleccionar]
$dias=30;
$pisos=10;

echo "<table width='300' border='1' cellspacing='0' cellpadding='0'>";
for($i=1;$i<=$pisos;$i++){
    echo "<tr>";
    for($j=1;$j<=$dias;$j++){
         echo "<td>D&iacute;a ".$j."</td>";
    }
    echo "</tr>";
}
echo "</table>";

mokoMonster

Cita de: Spider-Net en  9 Enero 2011, 00:13 AM
Debes usar for anidados.

Código (php) [Seleccionar]
$dias=30;
$pisos=10;

echo "<table width='300' border='1' cellspacing='0' cellpadding='0'>";
for($i=1;$i<=$pisos;$i++){
    echo "<tr>";
    for($j=1;$j<=$dias;$j++){
         echo "<td>D&iacute;a ".$j."</td>";
    }
    echo "</tr>";
}
echo "</table>";


Ok, Muchas Gracias, pareciera que ya vamos encontrando el camino.
Mira, esto es algo mas parecido a lo que quiero, es que el que se repitan los numeros en todas los campos pues no me ayuda.
<table width="300" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>&nbsp;</td>
    <td>Dia 1</td>
    <td>Dia 2</td>
    <td>Dia 3</td>
    <td>Dia 4</td>
  </tr>
  <tr>
    <td>Piso 1</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Piso 2</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Piso 3</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Piso 4</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
Si me explico?
Muchas gracias por seguir intentando, en realidad si entiendo lo que me explican, pero parece que no me explico bien yo.
Espero me puedan seguir ayudando, muchas gracias :)  :xD
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

xassiz~

Código (php) [Seleccionar]

<?php

$dias
=31;
$pisos=10;

echo 
"<table width='300' border='1' cellspacing='0' cellpadding='0'>";

echo 
"<tr><td>&nbsp;</td>";
for(
$dia=1;$dia<=$dias;$dia++){
    echo 
"<td>Dia ".$dia."</td>";
}
echo 
"</tr>";

for(
$piso=1;$piso<=$pisos;$piso++){
    echo 
"<tr>";
    echo 
"<td>Piso ".$piso."</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"</tr>";
}

echo 
"</table>";

?>



Debería dar la misma salida que el código que pusiste tú ;D

Spider-Net

Me da la sensación de que tú no quieres que te orienten sino que te demos el trabajo hecho. Con el código que te he dado puedes hacer lo que tú quieres con un par de if, pero deberías poner un poco más de tu parte e intentarlo tú mismo en lugar de esperar que te lo demos todo hecho.

RedZer

Cita de: Spider-Net en  9 Enero 2011, 19:13 PM
Me da la sensación de que tú no quieres que te orienten sino que te demos el trabajo hecho. Con el código que te he dado puedes hacer lo que tú quieres con un par de if, pero deberías poner un poco más de tu parte e intentarlo tú mismo en lugar de esperar que te lo demos todo hecho.

estoy de acuerdo con Spider man  si te sientas delante del ordenador a esperar aque horas un usuario t resuelve tu problema quiza si lo hagan pero tardaran en contestarte y pues para eso ya se te abra pasado la calificasion si es que ese programa es para la escuela asi que mejor buscale ,piensa, analiza si estas estrezado ve tantito unos videos xxx o de Gasparin lo que tu quieras y ya despues regresa y otra ves analiza el mismo dia que tu tu viste el problema este, ami tambien me surgio una duda pero con base de datos estaba tan estresado que no sabia como hacer y hasta postie mi duda aqui y nadie me contesto   :-(pero ise todo eso que te dije , y agarre una libreta y me puse analizar cada consulta y el resultado que queria obtener y me funciono. asi que adelante compañero investiga un poco hay un buen de info en google nosotros ya te dimos una encaminada
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

mokoMonster

Cita de: pablomi en  9 Enero 2011, 02:11 AM
Código (php) [Seleccionar]

<?php

$dias
=31;
$pisos=10;

echo 
"<table width='300' border='1' cellspacing='0' cellpadding='0'>";

echo 
"<tr><td>&nbsp;</td>";
for(
$dia=1;$dia<=$dias;$dia++){
    echo 
"<td>Dia ".$dia."</td>";
}
echo 
"</tr>";

for(
$piso=1;$piso<=$pisos;$piso++){
    echo 
"<tr>";
    echo 
"<td>Piso ".$piso."</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"<td>&nbsp;</td>";
    echo 
"</tr>";
}

echo 
"</table>";

?>



Debería dar la misma salida que el código que pusiste tú ;D

Mas que perfecto, estudiaré el código, muchas gracias :)
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange