Foros del Web » Programando para Internet » PHP »

Formas de listar una consulta

Estas en el tema de Formas de listar una consulta en el foro de PHP en Foros del Web. Espero amigos no infortunalos pero es que cada vez que programo en php busco formas alternativas de listar consultas a mysql, esta es que que ...
  #1 (permalink)  
Antiguo 20/09/2008, 14:57
 
Fecha de Ingreso: diciembre-2007
Ubicación: C:\Escritorio\Frente al Pc
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Formas de listar una consulta

Espero amigos no infortunalos pero es que cada vez que programo en php busco formas alternativas de listar consultas a mysql, esta es que que utilizo frecuentemente, claro que un poco modelada ya que los datos de sql los incluyo en el fichero coniguracion.

Código PHP:
 listar.php
<table width....>
<?
//Conectamos a la base de datos
$host="localhost";
//Ingresas tu usuario default = root
$user="user";
//Conotraseña de la bd
$pass="contraseña";
//El nombre de nuestra base de datos
$db="db";
//La tabla que queremos listar
$tabla="tabla";

//Conectamos con la base de datos

$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);

//Establecemos condiciones de paginacion

if (!isset($pg))
$pg 0;
$cantidad 10;
$inicial $pg $cantidad;

//Realizamos la busqueda en la base de datos
$pegar "SELECT * FROM $tabla ORDER BY id DESC LIMIT $inicial,$cantidad";
$cad mysql_db_query($db,$pegar) or die (mysql_error());

//Calculamos las paginas a mostrar

$contar "SELECT * FROM $tabla";
$contarok mysql_db_query($db,$contar);
$total_records mysql_num_rows($contarok);
$pages intval($total_records $cantidad);      
while (
$array mysql_fetch_array($cad))
{
// Aqui se muestran nuestras variables
echo  "
<tr><td>
$array[variable] .  "
</td>
</tr>
 "
;
//Fin imprimir resultados
echo "<br>";


//creando los enlaces de paginacion de resultados

echo "<tr>
  <td><center><p>"
;
if (
$pg <>0)
{
$url $pg 1;
echo 
"<font><a href='listar.php?id=".$id."&pg=".$url."'>&laquo; Anterior</a>&nbsp;</font>";
}
else {
echo 
" ";
}
for (
$i 0$i<($pages 1); $i++) {
if (
$i == $pg) {
echo 
"<font><b>&nbsp;$i&nbsp;</b></font>";
}
else {
echo 
"<font><a href='listar.php?id=".$id."&pg=".$i."'>".$i."</a>&nbsp;</font>";
}
}
if (
$pg $pages) {
$url $pg 1;
echo 
"<font><a href=listar.php?id=".$id."&pg=".$url."'>Siguiente &raquo;</a></font>";
}
else {
echo 
" ";
}
echo 
"</p></center></tr>
  </td>"
;
?>
</table>

sucede que quiero listar una consulta a la base de datos como lo muetra la imagen

http://fotosupload.com/mostrar.php?imagen=FuD43054_dibujo.gif

alguien me podria ayudar, asi vamos dejando distintas formas de listar en php, he buscado y nada porsiaka...se agradece y ojala pongan este tema como importante, pues lo es.
  #2 (permalink)  
Antiguo 20/09/2008, 18:10
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Formas de listar una consulta

Ah ya veo, o sea, la misma info en las celdas, sin cabecera, no entiendo para que quieres hacer eso, pero con un poco de ingenio todo se puede. OK, la forma es esta:

Código PHP:
$sql "Select ....";
$rst mysql_query($sql);

echo 
"<table>";
$i 0;
while (
$row mysql_fetch_array($rst)) {
     
$campo $row["campo"];
     if (
$i &#37; 3 == 0) echo "<tr>";
     
echo "<td>$campo</td>";
     if (
$i == 2) echo "</tr>";
}
echo 
"</table>"
Si necesitas hacer cuatro columnas solo cambia el 3 por el 4 y en vez de dos pones 3, nada más.
  #3 (permalink)  
Antiguo 20/09/2008, 19:50
 
Fecha de Ingreso: diciembre-2007
Ubicación: C:\Escritorio\Frente al Pc
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formas de listar una consulta

o muchas gracias :P
  #4 (permalink)  
Antiguo 20/09/2008, 20:21
 
Fecha de Ingreso: diciembre-2007
Ubicación: C:\Escritorio\Frente al Pc
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formas de listar una consulta

Código PHP:
<?

$host
="localhost";
$user="root";
$pass="pass";
$db="db";
$tabla="tabla";

//conectamos con la base de datos

$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);
//Ejecutamos la consulta
$sql "SELECT * FROM $tabla ORDER BY id";
$rst mysql_query($sql);

//Generamos la tabla
echo "<table border='1'>";
$i 0;
while (
$row mysql_fetch_array($rst)) {
     
$campo $row["id"];
     if (
$i == 0) echo "<tr>";
     echo 
"<td>$campo</td>";
     if (
$i &#37; 3 == 2) echo "</tr>";
}
echo 
"</table>"


?>
bueno lo intente de la manera que me dijiste y no puedo obtener las columnas sale todo hacia al lado.
  #5 (permalink)  
Antiguo 21/09/2008, 09:32
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Formas de listar una consulta

Hay dos errores muy tontos en tu código, el primero: en ningún lugar veo $i ++, eso debe estar antes de cerrar el bloque while, osea antes de }, segundo error, qué es esto??

Código:
if ($i & #37; 3 == 2)
Has reemplazado el % por su respectiva entidad HTML? debe estar simplemento eso:

Código:
if ($i % 3 == 2)
Corrige eso y te resultará.

... Ahora que lo pienso es gracioso, esos dos errores no son tuyos, aunque tuviste el error de copiar el código como estaba sin entenderlo, en fin. El primer error es mi culpa, yo puse así mi código sin $ i++, el segundo error es producto de la forma como estaba presentada mi respuesta, parece que el sistema del foro reemplazó % por su respectiva entidad HTML, qué curioso!
  #6 (permalink)  
Antiguo 21/09/2008, 16:09
 
Fecha de Ingreso: diciembre-2007
Ubicación: C:\Escritorio\Frente al Pc
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formas de listar una consulta

listar.php
Código PHP:
<?
//Datos de la conección
$host="localhost";
$user="tu_user";
$pass="tu_pass";
$db="tu_db";
$tabla="tu_tabla";

//Conectamos con la base de datos
$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);

//Ejecutamos la consulta
$sql "SELECT * FROM $tabla ORDER BY id";
$rst mysql_query($sql);

//Generamos la tabla
echo "<table border='1'>";
$i 0;
while (
$row mysql_fetch_array($rst)) {
//Aquí puedes poner el campo de la tabla que quieres que aparesca en ves de id     
$campo $row["id"];
     if (
$i++ & == 0) echo "<tr>";
     echo 
"<td>$campo</td>";
     if (
$i++ % == 4) echo "</tr>";
}
echo 
"</table>"


?>
Aqui esta arregladoel codigo se agradece a Eljavista y esperemos que este post lo pongan en aportes :P
  #7 (permalink)  
Antiguo 21/09/2008, 16:11
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Formas de listar una consulta

Espera, ese no es mi código, pero entiendo porque funciona, en cuanto al $i ++ no te dije que debería estar ahí donde lo has puesto. Bien, ese es el codigo sugerido:

echo "<table border='1'>";
$i = 0;
while ($row = mysql_fetch_array($rst)) {
//Aquí puedes poner el campo de la tabla que quieres que aparesca en ves de id
$campo = $row["id"];
if ($i % 5 == 0) echo "<tr>";
echo "<td>$campo</td>";
if ($i % 5 == 4) echo "</tr>";
$i ++;
}
echo "</table>";

Lo pongo sin la etiqueta [CODE] porque me a veces me cambia el carácer % por su respectiva entidad HTML.

Última edición por ElJavista; 21/09/2008 a las 16:17
  #8 (permalink)  
Antiguo 21/09/2008, 21:25
 
Fecha de Ingreso: diciembre-2007
Ubicación: C:\Escritorio\Frente al Pc
Mensajes: 47
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formas de listar una consulta

en fin resulto :P una molestia mas como podria hacer para centrar un <td> si por ejemplo tengo 7 entradas en la base de datos y me salgan asi

Código HTML:
id1 id2 id3
id4 id5 id6
      id7
alguna idea?? trate de hacer un condicional pero no me funciona :S:S
  #9 (permalink)  
Antiguo 22/09/2008, 08:50
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Formas de listar una consulta

Que exigente pareces un cliente, en fin. Vamos a ver.

En primer lugar, para centrar un celda a lo ancho de toda la tabla, esta celda debe contener el número de columnas de la tabla, esto se logra con un simple rowspan. El problema que veo es el siguiente, qué pasaría si el número de registros no es una multiplo del número de columnas más uno? Por ejemplo, si en el caso que has planteado, o sea, con 3 columnas no hay 7 registros sino 8? entonces al final habrían dos registros? Como se acomodaría en este caso? Con un registro que tenga un ancho de una columna y el otro con dos columnas de ancho. Pero si el número de columnas es par? por ejemplo 4? entonces si quedan dos registros, los ultimos dos vas a querer que cada uno tenga dos columnas de ancho. Es demasiado complicado, no vale la pena tanta complicación para una solución así.

Relajate y solo completa las celdas vacías con celdas en blanco, de qué modo? A ver pues, piensa un poquito, usa el ingenio que Dios te ha dado, se nota que ya sabes algo, entonces prueba pues, debe salirte. Sino te sale algo tan simple entonces ya debes comenzar a dudar de tu capacidad como programador.
  #10 (permalink)  
Antiguo 22/09/2008, 09:03
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Formas de listar una consulta

Hola lathix...

Creo que tu problema comienza por que no conocer bien la sintáxis de las tablas... Lee esto

Otra cosa, utilizas tag html que ya no se utilizan (font, center) Te vendría bien aprender xhtml, tendrás unas páginas mas limpias

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 11:44.