Foros del Web » Programando para Internet » PHP »

funtion .$row[].

Estas en el tema de funtion .$row[]. en el foro de PHP en Foros del Web. cuando genero una lista, o fotos, a traves de una base de datos, con php, genero es lista con: $row['valor'], esto lo puedo meter dentro ...
  #1 (permalink)  
Antiguo 17/04/2006, 10:25
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
funtion .$row[].

cuando genero una lista, o fotos, a traves de una base de datos, con php, genero es lista con: $row['valor'], esto lo puedo meter dentro de una tabla:

Código PHP:
<tr><td>.$row['valor'].</td></tr
Pero, esto me genera una tabla con una sola celda, por fila, como lo hago si quiero generar, por ejemplo tres o cuatro celdas, por fila???

Asi?
Código PHP:
<tr>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
</
tr
Para mas datos, os diré que entre columna y columna quiero meter otros datos

Código PHP:
<tr>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
</
tr><tr>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
</
tr><tr>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
<
td>.$row['valor'].</td>
</
tr><tr>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
<
td>.$row['otrovalor'].</td>
</
tr><tr>
............ 

Osea una tabla que muestre en la celda de arriba una foto, y debajo su descripción.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 17/04/2006, 10:54
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
while( $row = mysql_fetch_array ($result) ){
//muestra aquí $row['valor']
//muestra aquí $row['otrovalor']
}


En cada iteración, irán cambiando los valores hasta que se acaben los resultados.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #3 (permalink)  
Antiguo 17/04/2006, 11:48
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Pero no estas contestando a mi pregunta, eso ya lo se, lo que yo quiero es hacer una tabla por ejemplo de 4*20 osea 4 celdas por fila, que me extructure los resultados, como obternerlos y mostrarlos a saco ya se

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 17/04/2006, 11:57
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 19 años
Puntos: 0
Pues algo asi:

Código PHP:
<table>
while( 
$row mysql_fetch_array ($result) ){
 <
tr>
 foreach(
$row as $valor)
 {
 <
td>$row['valor']</td>
 <
td>$row['otrovalor']</td>
 }
 </
tr>

}
</
table
con los correspondientes echo,comillas,...
  #5 (permalink)  
Antiguo 17/04/2006, 11:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
A mi se ocurre que primero obtengas el tamaño de tu arreglo podrias utilizar la funcion count(), con el tamaño de arreglo lo divides entre cuatro esto para saber el numero de filas que se van a imprimir y podiras utilizar un for

Código PHP:
<?
$tamano 
count($row);
for (
$i 1$i <=$tamano$i++)
{
  echo
"<td>row[ele1]<td>";
  echo
"<td>row[ele2]<td>";
  echo
"<td>row[ele3]<td>";
  echo
"<td>row[ele4]<td>";

}
?>
  #6 (permalink)  
Antiguo 17/04/2006, 12:27
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Mauled

Eso del contador es buena idea, pero cuando pones: ele1, ele2, te estas refiriendo a foto??, pq yo en la base de datos tengo un campo que pone foto y otro titulo, entonces yo quiero hacer una tabla donde arriba esten las fotos y abajo el titulo, la estrucutura, seria:

Código:
<table>
<tr><td>foto</td><td>foto</td><td>foto</td><td>foto</td></tr>
<tr><td>titulo</td><td>titulo</td><td>titulo</td><td>titulo</td></tr>
<tr><td>foto</td><td>foto</td><td>foto</td><td>foto</td></tr>
<tr><td>titulo</td><td>titulo</td><td>titulo</td><td>titulo</td></tr>
</table>
Si yo pongo:

Código PHP:
<table>
<
tr><td>$row['valor']</td></tr>
<
tr><td>$row['otrovalor']</td></tr
</
table
me crea una tabla de una sola colunma

y si pongo:

Código PHP:
<table>
<
tr><td>$row['valor']</td>
<
td>$row['otrovalor']</td></tr>
</
table
Me crea una unica fila alternando "valor" con "otrovalor"

no se si me explico

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #7 (permalink)  
Antiguo 17/04/2006, 12:39
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 19 años
Puntos: 0
Y si pones TODO lo que te he dicho antes no te funciona??
Código PHP:
<table>
while( 
$row mysql_fetch_array ($result) ){ 
 <
tr
 foreach(
$row as $valor
 { 
 <
td>$row['valor']</td
 <
td>$row['otrovalor']</td
 } 
 </
tr


</
table
Si te fijas,aqui se crea una fila por cada while,con tantas columnas como tenga la tabla.
  #8 (permalink)  
Antiguo 17/04/2006, 12:42
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
y como le indico el numero de columnas??? Que es lo que estoy preguntando todo el rato

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #9 (permalink)  
Antiguo 17/04/2006, 12:50
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 19 años
Puntos: 0
Código PHP:
echo "<table>" 
while( $row mysql_fetch_array ($result) ){  
 echo 
"<tr>"  
 
foreach($row as $valor)  
 {  
    echo 
"<td>$valor</td>"

 
}  
 echo 
"</tr>"  

}  
echo 
"</table>" 

Asi te da tantas columnas como tenga la tabla
  #10 (permalink)  
Antiguo 17/04/2006, 19:57
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
robandrox

No entiendes, lo que estoy pidiendo.

Lo voy a poner fácil, tengo 200 fotos para mostrar y quiero crea una tabla donde en cada fila halla 4 fotos, osea habría 50 filas, olvidaros de que lleven titulo ni nada, solo las fotos.

haber quien me puede ayudar?

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #11 (permalink)  
Antiguo 17/04/2006, 20:16
 
Fecha de Ingreso: noviembre-2005
Mensajes: 3
Antigüedad: 18 años, 4 meses
Puntos: 0
Código PHP:
<?php
define
"NUM_ROW");

print 
"<table>";
$i 0;
while( 
$row mysql_fetch_array$result ) )
{  
    print 
"<td>" $row['valor'] . "</td>";
    
$i++;
    
    if( 
$i NUM_ROW == 
        print 
"</tr><tr>";
}  
print 
"</table>"  
?>
Espero esto te sirva y sea lo que buscabas, la constante NUM_ROW es el numero de columnas que tendras.
  #12 (permalink)  
Antiguo 17/04/2006, 20:31
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Por favor di si lo que necesitas es que imprima esto (y si no es, qué le cambiarías):

Código:
<table>
    <tr>
        <td>foto_000</td>
        <td>foto_001</td>
        <td>foto_002</td>
        <td>foto_003</td>
    </tr>
    <tr>
        <td>titulo_000</td>
        <td>titulo_001</td>
        <td>titulo_002</td>
        <td>titulo_003</td>
    </tr>
    <tr>
        <td>foto_004</td>
        <td>foto_005</td>
        <td>foto_006</td>
        <td>foto_007</td>
    </tr>
    <tr>
        <td>titulo_004</td>
        <td>titulo_005</td>
        <td>titulo_006</td>
        <td>titulo_007</td>
    </tr>
    .
    .
    .
</table>
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #13 (permalink)  
Antiguo 18/04/2006, 03:01
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
chuanma

Muchas gracias, echo es exactamente lo que buscaba que buscaba.


uamistad

Si es justamente eso, pero al final el titulo, lo e metido en el mismo <td> de la foto:

Código PHP:
echo "<table style=\"text-align: center; margin-left: auto; margin-right: auto;\">";

define"NUM_ROW"); 
$i 0;

while ((
$row1 mysql_fetch_array($result1)) && ($row2 mysql_fetch_array($result2)))

$ruta11 =  $row1['rutap'].$row1['foto'];
$ruta22 =  $row2['ruta'].$row2['foto'];

$ruta1 substr($ruta1129);
$ruta2 substr($ruta2229);

echo 
"<td><a href=\"$ruta2\"><img src=\"$ruta1\"></a><br />";
echo $[
'titulo']."</td>";
$i++;
if( 
$i NUM_ROW == )

       print 
"</tr><tr>";

}

echo 
"</table>"
bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #14 (permalink)  
Antiguo 18/04/2006, 03:17
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
La función de chaunma no te da un código correcto para generar una tabla, porque pone algo como:

<table><td></td> al principio.

Y al final cierra no cierra la etiqueta de <tr>


Basado en la función de chaunma pongo la siguiente, que te da un código igual a este:

Código:
<table>
    <tr>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr><tr>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr><tr>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr><tr>
           ... y así continúa
           ...
        <td>-</td>
        <td>-</td>
    </tr><tr>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr><tr>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
</table>  <!-- y cierra correctamente -->
y cierra correctamente la tabla, además de darle un poco de formato al HTML para que se vea sangrado:

Código PHP:
<?php
define
"NUM_ROW");

print 
"<table>\n\t<tr>\n";
print 
"\t\t<td>" $row['valor'] . "</td>\n";
$i 1;
while( 
$i 200 ){  
    if( 
$i NUM_ROW == ) print "\t</tr><tr>\n";
    print 
"\t\t<td>" $row['valor'] . "</td>\n";
    
$i++;    
}  
print 
"\t</tr>\n</table>";
?> 

good luck !
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #15 (permalink)  
Antiguo 18/04/2006, 03:37
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Una pequeña modificación en el codigo:

Código PHP:
echo "<table style=\"text-align: center; margin-left: auto; margin-right: auto;\">";
echo 
"<tr>";

define"NUM_ROW"); 
$i 0;

while ((
$row1 mysql_fetch_array($result1)) && ($row2 mysql_fetch_array($result2)))

$ruta11 =  $row1['rutap'].$row1['foto'];
$ruta22 =  $row2['ruta'].$row2['foto'];

$ruta1 substr($ruta1129);
$ruta2 substr($ruta2229);

echo 
"<td><a href=\"$ruta2\"><img src=\"$ruta1\"></a><br />";
echo $[
'titulo']."</td>";
$i++;
if( 
$i NUM_ROW == )

       print 
"</tr><tr>";

}

echo 
"</tr>";
echo 
"</table>"
bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #16 (permalink)  
Antiguo 18/04/2006, 03:41
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
uamistad

Lo de 200 lo dije aleatoriamente, hay varias bases de datos con fotos, y varía según cual la cantidad de fotos, lo del sangrado, esta bien, pero no necesario, lo del mal cierre ya lo solucione.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #17 (permalink)  
Antiguo 18/04/2006, 03:49
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
chin, ese '200' se me olvidó quitarlo, lo puse p' la prueba nada más, debería decir lo mismo que en el otro. =P

Eso de abrir <tr> y cerrarlo enseguida no pasará la validación HTML, eso es importante, pero si sólo necesitas que imprima, pues sí imprime. Tampoco si tienes un número de resultados no múltiplo entero de 4, pues en tal caso, cerrarías una </tr> que jamás abriste.

Soy un maniático de los estándares, sorry, jeje. Buena suerte, man, =)
__________________
"Di no al Internet Explorer" -Proverbio Chino-

Última edición por uamistad; 18/04/2006 a las 03:59
  #18 (permalink)  
Antiguo 18/04/2006, 04:05
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Estas equivocado, tengo otras db con 5 o 7 fotos y me cierra bien los </tr>, sin añadir demás.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #19 (permalink)  
Antiguo 18/04/2006, 04:07
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Código de bichomen:
Cita:
if( $i % NUM_ROW == 0 )

print
"</tr><tr>";


¿Qué crees que hará eso cuando no se cumpla que $i sea igual a un múltiplo entero de NUM_ROW?

La penúltima etiqueta sería un </tr> que jamás abrió, sólo cerró, eso no tiene sentido.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #20 (permalink)  
Antiguo 18/04/2006, 04:10
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
No lo creó, lo sé, por que lo e aplicado ya, con 5 fotos y me cierra bien los <tr>

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #21 (permalink)  
Antiguo 18/04/2006, 04:18
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
con huecos, ¿cierto?:

Código:
<table>
    <tr>
        <td>Uno</td>
        <td>Uno</td>
        <td>Uno</td>
        <td>Uno</td>
    </tr>
    <tr>
        <td>Uno</td>
        <td>Uno</td>
    </tr>
</table>
Aunque creo que los huecos sí validan, yo cuando hacía webs con huecos se veían medias raras, pero era antes de meterme con CSS, por lo tanto no sé si se vean o no bien.

De cualquier forma he visto el código y tienes razón en cuanto a que cierra, en ese post de "pequeña modificación" pones lo que faltaba.

Paz
__________________
"Di no al Internet Explorer" -Proverbio Chino-

Última edición por uamistad; 18/04/2006 a las 04:24
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 04:44.