Foros del Web » Programando para Internet » PHP »

Listar todos los registros codigo

Estas en el tema de Listar todos los registros codigo en el foro de PHP en Foros del Web. Pues el caso es que no me lista todos los registros que hay solo me registra el primero y no se xk aqui os pego ...
  #1 (permalink)  
Antiguo 04/06/2007, 11:20
 
Fecha de Ingreso: mayo-2007
Mensajes: 48
Antigüedad: 16 años, 10 meses
Puntos: 0
Listar todos los registros codigo

Pues el caso es que no me lista todos los registros que hay solo me registra el primero y no se xk aqui os pego mi codigo y a ver si me sabeis decir porque, yo por mas que lo intente no lo he conseguido, muchas gracias de antemano, por cierto este codigo es una plantilla que llama un htm y remplaza cosas como vereis:


Código:
<?php
session_start();
 $file = fopen("tabla.htm", "r");
      $html = fread($file, filesize("tabla.htm"));
      fclose($file);
include('init.inc');
//Conectamos con la base de datos 
$conect=mysql_connect($hostname_localhost, $username_localhost, $password_localhost);
$db=mysql_select_db($database_localhost, $conect);

$resguardos="SELECT * FROM resguardos";
$res=mysql_query($resguardos); 
while ($row=mysql_fetch_array($res))
{
$cliente=$row['id_cliente'];
$clientes="SELECT * FROM clientes where id_cliente=$cliente";
$res2=mysql_query($clientes); 
while ($row2=mysql_fetch_array($res2))
{
$nombre=$row2['nombre_apellidos'];
$num=$row['id_resguardo'];
$fechaentrada=$row['fecha_entrada'];
$estado=$row['estado_averia'];
$fac=$row['n_factura'];
$tabla="<tr><td>".$num."</td><td>".$fac."</td><td>".$cliente."</td><td>$nombre</td><td>".$fechaentrada."</td><td>".$estado."</td><td><a href='modificar_resguardo_plantilla.php?id_resguardo=xxnumxx&amp;id_cliente=$cliente'><img src='imagenes/edit.png' alt='Modificar' width='16' height='16' border='0' /></a><a href='desactivar_averia.php?id_resguardo=xxnumxx'><img src='imagenes/desactiva.jpg' alt='Entregada' width='20' height='20' border='0' /></a><a href='ver_resguardo_pdf.php?id_resguardo=xxnumxx' target='_blank'><img src='imagenes/pdf.png' alt='Generar PDF' width='16' height='16' border='0' /></a><a href='borrar_resguardo.php?id_resguardo=xxnumxx'><img src='imagenes/delete.png' alt='Borrar' width='16' height='16' border='0' /onclick='if(confirm('&iquest;Desea Borrar Realmente este Registro') == false){return false;}'/></a></td></tr>";
}
$html = str_replace("xxnumxx", $num, $html);
$html = str_replace("xxclientexx", $cliente, $html);
$html = str_replace("xxfechaentradaxx", $fechaentrada, $html);
$html = str_replace("xxfacxx", $fac, $html);
$html = str_replace("xxnombrexx", $nombre, $html);
$html = str_replace("xxestadoxx", $estado, $html);
$html = str_replace("xxtablaxx", $tabla, $html);
}
echo $html;
?>
  #2 (permalink)  
Antiguo 05/06/2007, 02:17
 
Fecha de Ingreso: mayo-2007
Mensajes: 48
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Listar todos los registros codigo

a ver si alguien me puede ayudar por favor estoy seguro que muchos sabeis como se hace a ver si me hechais una mano
  #3 (permalink)  
Antiguo 05/06/2007, 07:29
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Listar todos los registros codigo

Hola Rebellion, una pregunta para ver si puedo ayudarte, seguro que el registro que te muestra es el primero y no el ultimo de tu tabla. Otra, en esta consulta
$clientes="SELECT * FROM clientes where id_cliente=$cliente";
Creo que solo traes un solo registro, por lo que no es necesario que ejecutes ese segundo while, es decir que puedes directamente hacer
$row2=mysql_fetch_array($res2);
$nombre=$row2['nombre_apellidos'];
$num=$row['id_resguardo'];
.
Saludos .
__________________
->Aprender es un proceso que incluye el error..
  #4 (permalink)  
Antiguo 05/06/2007, 08:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Listar todos los registros codigo

Prueba esto:
Código PHP:
<?php
session_start
();
 
$file fopen("tabla.htm""r");
      
$html fread($filefilesize("tabla.htm"));
      
fclose($file);
include(
'init.inc');
//Conectamos con la base de datos 
$conect=mysql_connect($hostname_localhost$username_localhost$password_localhost);
$db=mysql_select_db($database_localhost$conect);

$resguardos="SELECT * FROM resguardos";
$res=mysql_query($resguardos); 
echo 
"<table>";
while (
$row=mysql_fetch_array($res))
{
$cliente=$row['id_cliente'];
$clientes="SELECT * FROM clientes where id_cliente=$cliente";
$res2=mysql_query($clientes); 
while (
$row2=mysql_fetch_array($res2))
{
$nombre=$row2['nombre_apellidos'];
$num=$row['id_resguardo'];
$fechaentrada=$row['fecha_entrada'];
$estado=$row['estado_averia'];
$fac=$row['n_factura'];
echo 
"<tr><td>".$num."</td><td>".$fac."</td><td>".$cliente."</td><td>$nombre</td><td>".$fechaentrada."</td><td>".$estado."</td><td><a href='modificar_resguardo_plantilla.php?id_resguardo=xxnumxx&amp;id_cliente=$cliente'><img src='imagenes/edit.png' alt='Modificar' width='16' height='16' border='0' /></a><a href='desactivar_averia.php?id_resguardo=xxnumxx'><img src='imagenes/desactiva.jpg' alt='Entregada' width='20' height='20' border='0' /></a><a href='ver_resguardo_pdf.php?id_resguardo=xxnumxx' target='_blank'><img src='imagenes/pdf.png' alt='Generar PDF' width='16' height='16' border='0' /></a><a href='borrar_resguardo.php?id_resguardo=xxnumxx'><img src='imagenes/delete.png' alt='Borrar' width='16' height='16' border='0' /onclick='if(confirm('&iquest;Desea Borrar Realmente este Registro') == false){return false;}'/></a></td></tr>";
}
}
echo 
"</table>";
?>
Si te imprime todos los datos, entonces el problema esta en tu forma de imprimir el template, al usar str_replace solo reemplaza la primera instancia, debes de pensar en otra forma de usar tus ciclos con templates.

Saludos.
  #5 (permalink)  
Antiguo 05/06/2007, 09:02
 
Fecha de Ingreso: mayo-2007
Mensajes: 48
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Listar todos los registros codigo

lo que tu dices me tira gator pero xk no me respeta el htm???
  #6 (permalink)  
Antiguo 05/06/2007, 09:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Listar todos los registros codigo

Pega tu template, el problema lo veo yo en los str_replace, ya que estan dentro del ciclo, a la primera vuelta, str_replace busca xxnumxx y lo reemplaza, pero a la siguiente vuelta ya no existe xxnumxx, porque ya fue reemplazado y por eso solo te muestra el 1er registro a pesar de que hay varios.

Es por eso que te digo tienes que pensar en otra forma de hacer tu template.

Saludos.
  #7 (permalink)  
Antiguo 05/06/2007, 09:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 48
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Listar todos los registros codigo

el codigo del htm que carga es el siguiente:

Código:
<body>

<p align="center"><u><span class="Estilo1">Reparaci&oacute;nes</span><a href="index.php"><img src="imagenes/admin.png" alt="Ir a la Administraci&oacute;n" width="22" height="22" border="0" /></a></u></p>
<table width="900" border="1" align="center">
  <tr>
    <td width="30"><div align="right"><strong>Num.</strong></div></td>
    <td width="32"><div align="right"><strong>Fac.</strong></div></td>
    <td width="30"><div align="right"><strong>Cliente</strong></div></td>
    <td width="300"><strong>Nombre </strong></td>
    <td width="105" align="right"><strong>Fecha Entrada*</strong></td>
    <td width="85"><strong>Estado</strong></td>
    <td width="42">&nbsp;</td>
  </tr>
 xxtablaxx
</table>
</body>

</html>
Como podria hacer para que me respete esto y salgan todos los registros.
  #8 (permalink)  
Antiguo 06/06/2007, 05:40
 
Fecha de Ingreso: mayo-2007
Mensajes: 48
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Listar todos los registros codigo

al final lo hice todo en una xk con esa no me funcionaba
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 20:34.