Foros del Web » Programando para Internet » PHP »

FAQ de mostrar columnas - Problema

Estas en el tema de FAQ de mostrar columnas - Problema en el foro de PHP en Foros del Web. hola, tengo un problema...... he tenido que motrar un resultado de una consulta en tres columans... para ello utilice el codigo que esta en la ...
  #1 (permalink)  
Antiguo 21/05/2003, 11:06
Avatar de m_sassa  
Fecha de Ingreso: noviembre-2002
Ubicación: Rio Cuarto - Córdoba - Argentina
Mensajes: 299
Antigüedad: 15 años
Puntos: 0
FAQ de mostrar columnas - Problema

hola, tengo un problema......

he tenido que motrar un resultado de una consulta en tres columans... para ello utilice el codigo que esta en la FAQ´s de PHP, mas presisamente, la numero 8......

pero el problema es que no me muestra el primer registro de la consulta.... empieza por mostrar el segundo...... alguien sabra como solucionarlo......

probe iniciando la i del for en 0, pero tampoco....

bueno, espero....

gracias
__________________
"El paisano es la persona que lleva el paisaje en el alma"
Atahualpa Yupanqui
  #2 (permalink)  
Antiguo 21/05/2003, 11:12
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 14 años, 7 meses
Puntos: 2
te paso uno mas sencillo

Código PHP:
<table>
<tr>
<?
.
.
.
                                            
$counter=1;
                                            while (
$row $rs->obtenerArray())
                                            {
                                        
?>
                                            <td><div align="center"><img src="<?echo $row["producto_banner_url"];?>"></div></td>
                                        <?
                                                
if ($counter%3==0) echo "</tr><tr>";
                                                
$counter++;
                                            }
                                        }
                                        
?>
                                          </tr>
</table>
  #3 (permalink)  
Antiguo 21/05/2003, 11:14
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
En realidad, la $i no tiene nada que ver con el registro que se muestra, sino con la celda en la que estás. Es mejor que empieces por 1 porque te será más cómodo saber la celda en que estás.

Sería conveniente que publicaras el código que usas, porque me parece que el problema está en que haces el mysql_fetch_row() 2 veces.

DotNetDeveloper: puede que sea más sencillo (aunque para mi no ), pero me temo que navegadores más exigentes que IE (como Netscape) tienen problemas con las tablas que tienen filas con distinto número de celdas.
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 21/05/2003, 11:37
Avatar de m_sassa  
Fecha de Ingreso: noviembre-2002
Ubicación: Rio Cuarto - Córdoba - Argentina
Mensajes: 299
Antigüedad: 15 años
Puntos: 0
Aqui les pongo el codigo entero de la pagina......

Código PHP:
<?php
php 
require_once('../Connections/conn1.php');
mysql_select_db($database_conn1$conn1);
$query_ofertas "SELECT * FROM oferta ORDER BY fch_alt ASC";
$ofertas mysql_query($query_ofertas$conn1) or die(mysql_error());
$row_ofertas mysql_fetch_assoc($ofertas);
$totalRows_ofertas mysql_num_rows($ofertas);
?>

// y despues.......

 <?php

echo "<table width=100% border=1 align=center cellpadding=0 cellspacing=0 bordercolor=#FF9900>";

$columnes 3# Número de columnas (variable)
    
if ($row_ofertas=0){echo "<tr><td colspan=$columnes>No hay resultados en la BD.</td></tr> ";} 
                        
for (
$i=1$row_ofertas mysql_fetch_row ($ofertas); $i++) {

resto = ($i $columnes); 
if (
$resto == 1) {echo "<tr>";} 

          echo 
"<td width=33%><font size=1 face=Verdana, Arial, Helvetica, sans-serif><strong><center>$row_ofertas[2]</center></strong></font>"

          echo 
"<font size=2 face=Verdana, Arial, Helvetica, sans-serif><center>$row_ofertas[10]</center></font>";

          echo 
"<font size=2 face=Verdana, Arial, Helvetica, sans-serif><center>$row_ofertas[5]</center></font></td>";

if (
$resto == 0) {echo "</tr>";}
}

if (
$resto <> 0) {                

$ajust $columnes $resto# Número de huecos necesarios

for ($j 0$j $ajust$j++) {echo "<td>&nbsp;</td>";}

echo 
"</tr>";
}

echo 
"</table>";
?>
__________________
"El paisano es la persona que lleva el paisaje en el alma"
Atahualpa Yupanqui
  #5 (permalink)  
Antiguo 21/05/2003, 11:41
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 14 años, 7 meses
Puntos: 2
El mio estaba más facil pero weno, cada quien
  #6 (permalink)  
Antiguo 21/05/2003, 11:50
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Cita:
$ofertas = mysql_query($query_ofertas, $conn1) or die(mysql_error());

$row_ofertas = mysql_fetch_assoc($ofertas); <-- Aquí asignas el primer registro

...

for ($i=1; $row_ofertas = mysql_fetch_row ($ofertas); $i++) { <-- Esto empezará por el segundo registro porque el primero ya se ha asignado
Solución:

Quita esta línea:
$row_ofertas = mysql_fetch_assoc($ofertas);

O sustituye esto:
for ($i=1; $row_ofertas = mysql_fetch_row ($ofertas); $i++) {

Por esto:
for ($i=1; $row_ofertas = mysql_fetch_assoc($ofertas); $i++) {

Y luego cambia las referencias de dentro del bucle.
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 21/05/2003, 11:59
Avatar de m_sassa  
Fecha de Ingreso: noviembre-2002
Ubicación: Rio Cuarto - Córdoba - Argentina
Mensajes: 299
Antigüedad: 15 años
Puntos: 0
si, ya lo hice y funciono, borre el fetch_array de arriba y deje solo el feth_row del for.....

gracias..

quisiera hacer una pregunta mas....

cuando yo hago un for o un do.... que es lo que me hace cambiar de registro.... o sea que en la primera pasada me muestre el primero en la segunda el segundo.... no se si se entiende.... pero es algo similar al movenext de ASP ... que es lo que hace eso en php, o lo hace solo..... gracias........
__________________
"El paisano es la persona que lleva el paisaje en el alma"
Atahualpa Yupanqui
  #8 (permalink)  
Antiguo 21/05/2003, 12:02
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
mysql_fetch_* crea un array y va devolviendo registros ordenadamente.

Sería como crear un array e ir recorriéndolo, pero que lo hace todo en una misma función.

Para recorrer los resultados, basta con crear un bucle como el de mi ejemplo.
__________________
M a l d i t o F r i k i
  #9 (permalink)  
Antiguo 21/05/2003, 14:39
Avatar de m_sassa  
Fecha de Ingreso: noviembre-2002
Ubicación: Rio Cuarto - Córdoba - Argentina
Mensajes: 299
Antigüedad: 15 años
Puntos: 0
ok, gracias
__________________
"El paisano es la persona que lleva el paisaje en el alma"
Atahualpa Yupanqui
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:07.