Foros del Web » Programando para Internet » PHP »

Como mostrar registros de una bd en formato diferente.

Estas en el tema de Como mostrar registros de una bd en formato diferente. en el foro de PHP en Foros del Web. Tal vez me ayudan un poco. Estoy haciendo una consulta a una base de datos y quisiera que el primer registro que imprime en pantalla ...
  #1 (permalink)  
Antiguo 20/01/2003, 09:12
Avatar de cvander
Moderador
 
Fecha de Ingreso: abril-2001
Ubicación: Ciudadano del mundo
Mensajes: 13.638
Antigüedad: 23 años
Puntos: 1792
Pregunta Como mostrar registros de una bd en formato diferente.

Tal vez me ayudan un poco.

Estoy haciendo una consulta a una base de datos y quisiera que el primer registro que imprime en pantalla tuviera características especiales al de los siguientes. Hice lo siguiente pero si se puede optimizar sus consejos bienvenidos.

Código PHP:
$result mysql_query$sql ) or die ( 'No se pudo realizar la consulta.' );  
    
$num mysql_numrows$result );
           if ( 
$num == ) { 
header("location: /sitio/noesta.php?url=".$_SERVER["HTTP_REFERER"]);
exit;
    } else {
$reg 0;
while (
$row mysql_fetch_array($result)) {

if (
$reg == 0) {
echo 
"<font size=5>".$row1["contenido"]".</font>"
$reg 1;
} else {
echo 
"<font size=1>".$row1["contenido"]".</font>"
}}} 
__________________
- Christian Van Der Henst
Platzi
  #2 (permalink)  
Antiguo 20/01/2003, 09:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si es por formato .. osese HTML que adorne a ese dato q obtienes de esa consulta .. mm si usas la estructura siguiente .. Puedes crear el "HTML" que envuelva a ese dato con cualquier editor HTML visual y tan solo "incrustar" tu variable en el.

Código PHP:
echo <<<HTML
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
      <td class="css_para_esto">$row1
['contenido']</td>
  </tr>
</table>
HTML; 
Así de simple via esta técnica puedes usar HTML "comun" (en el ejemplo .. usando una tabla HTML .. Y si usas CSS mejor todavía ...) en PHP y usar variables (simples o arrays no llamadas a Objetos). Ojo que HTML; ha de estar al principio de una linea nueva .. un espacio delante te daría un error de "parser" o similar

Un saludo,

Última edición por Cluster; 20/01/2003 a las 09:49
  #3 (permalink)  
Antiguo 20/01/2003, 09:53
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Código mejorado:

Código PHP:
<?
$result 
mysql_query($sql) or die ('No se pudo realizar la consulta.');  
if (
mysql_num_rows($result) == 0) {header("location: /sitio/noesta.php?url=".$_SERVER["HTTP_REFERER"]);}
else {
    for (
$reg=0$row mysql_fetch_array($result); $reg++) {
        if (
$reg == 0) {echo "<font size=5>$row[contenido]</font>";}
        else {echo 
"<font size=1>$row[contenido]</font>";}
    }
}
?>
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 20/01/2003, 10:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otra opción ...

Código PHP:
$result mysql_query($sql);

// Obtener campo "contenido" del primer registro de la consulta.
$registro1=mysql_result($result,0,"contenido");

// Presentar ese registro con el formato dato ..
echo <<<HTML
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
      <td class="css_para_esto">$registro1</td>
  </tr>
</table>
HTML;

// Mover el puntero al registro 2 (comienzan por cero ..)
mysql_data_seek($result,1);

// Presentar el resto de registros ...
while ($row mysql_fetch_array($result)) {
echo 
"<font size=1>".$row['contenido']."</font><br>";

No se cual será mas optima .. pero en esta nos evitamos hacer un condicional en cada resto de registros a presentar diferentes del 1º ...


Un saludo,
  #5 (permalink)  
Antiguo 20/01/2003, 10:24
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Buena idea
__________________
M a l d i t o F r i k i
  #6 (permalink)  
Antiguo 20/01/2003, 14:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Una pequeña "mejora" al codigo de Cluster: usar mysql_fetch_array() tambien para el primer registro y asi te libras de la llamada a mysql_data_seek() y tambien por si necesitas mas de un campo del registro. Quedaria:
Código PHP:
$result mysql_query($sql);



// Obtener primer registro de la consulta.

$row=mysql_fetch_array($result);



// Presentar ese registro con el formato dato ..

echo <<<HTML

<table width="100%" border="1" cellspacing="0" cellpadding="0">

  <tr>

      <td class="css_para_esto">$row
['contenido']</td>

  </tr>

</table>

HTML;



// Presentar el resto de registros ...

while ($row mysql_fetch_array($result)) {

echo 
"<font size=1>".$row['contenido']."</font><br>";


Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 20/01/2003, 15:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Buena Josemi ..

A veces uno se va por las ramas cuando la solución es mas sencilla de lo que parece ..

Un saludo,
  #8 (permalink)  
Antiguo 20/01/2003, 17:45
Avatar de cvander
Moderador
 
Fecha de Ingreso: abril-2001
Ubicación: Ciudadano del mundo
Mensajes: 13.638
Antigüedad: 23 años
Puntos: 1792
De acuerdo Muchas gracias por la ayuda.

Excelentes respuesta para mejorar el código.

La aplicación de esta inquietud la pueden ver en:
http://www.maestrosdelweb.com/editorial/

Saludos.
__________________
- Christian Van Der Henst
Platzi

Última edición por cvdhs; 20/01/2003 a las 19:53
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:42.