PDA

Ver la Versión Completa : Consulta a tabla


amerika111
26-08-2011, 02:32:53
hola que tal, no he podido sacar una consulta en php, es mi primer programita y nose que pueda tener incorrecto tanto de sintaxis como de conexion por que no me arroja ningun campo y la tabla cuenta con uno..

<HTML LANG="es">
<HEAD>
<TITLE>Consulta de usuarios</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="estilo.css">
<?PHP
//Incluir bibliotecas de funciones
//include("lib/fecha.php");
//?>
</HEAD>
<BODY>
<H1>CONSULTA DE USUARIOS</H1>
<?PHP

$link = mysql_connect('peopleco.readyhostingmysql.com', 'admin1234', 'pretoriano1');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db(administrador);

//Enviar consulta
$instruccion="select ID,USUARIO,CLAVE,PUESTO from usuario";
$consulta=mysql_query($instruccion, $link)
or die ("FALLO EN LA CONSULTA");
//Mostrar resultados de la consulta
$nfilas=mysql_num_rows($consulta);
if($nfilas >0)
{
print("<TABLE>\n");
print("<TR>\n");
print("<TH>ID</TH>\n");
print("<TH>USUARIO</TH>\n");
print("<TH>CLAVE</TH>\n");
print("<TH>PUESTO</TH>\n");

for ($i=0; $i<nfilas; $i++)
{
$resultado=mysql_fetch_array($consulta);
print ("<TR>\n");
print ("<TD>".$resultado['ID']."</TD>/n");
print ("<TD>".$resultado['USUARIO']."</TD>/n");
print ("<TD>".$resultado['CLAVE']."</TD>/n");
print ("<TD>".$resultado['PUESTO']."</TD>/n");}
}else
mysql_close($conexion);
?>
</BODY>
</HTML>

almerak
16-09-2011, 00:08:42
en la linea donde

for ($i=0; $i<nfilas; $i++)

debes poner que nfilas es una variable asi

for ($i=0; $i<$nfilas; $i++)

osea falta la $en nfilas, $nfilas

saludos

almerak
16-09-2011, 00:15:57
ha igualme falto esta linea donde debes poner el nombre de tu base de datos

mysql_select_db('tubasededatos');

y listo, saludos :D

D-MO
16-09-2011, 09:40:55
...mysql_select_db('tubasededatos');...
Al parecer si la tiene, pero de esta manera:
mysql_select_db(administrador);

no se si lo que intenta pasar una variable y olvidó el "$" o bién ese es el nombre de la bd y olvidó las comillas... no se.

Saludos

Ñuño Martínez
20-09-2011, 21:01:39
Por cierto: estás usando un HTML muy viejo, tal vez la versión 2 o o incluso la 1. Te recomiendo que uses una más moderna. Lo mejor es HTML 5, proque es mucho más simple, menos estricta y compatible "hacia atrás".

Para que veas lo fácil que es "traduzco" tu código:
<!DOCTYPE html>
<html>
<head>
<meta lang="es" />
<meta charset="utf-8" />
<!-- Las siguientes líneas añaden compatibilidad "hacia atrás" -->
<meta name="lang" content="es" />
<meta name="charset" content="utf-8" />
<title>Consulta de usuarios</title>
<link rel="stylesheet" type="text/css" href="estilo.css" />
<?php # La etiqueta PHP también en minúsculas.
// Incluir bibliotecas de funciones
// include ("lib/fecha.php");

# ¡No comentes el cierre del bloque PHP!
?>
</head>
<body>
<h1>CONSULTA DE USUARIOS</h1>
<?php

# La "arroba" evita que MySQL escriba errores donde no deba.
$link = @mysql_connect('peopleco.readyhostingmysql.com', 'admin1234', 'pretoriano1');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo '<p>Connected successfully</p>'; # Usa siempre etiquetas de bloque!
@mysql_select_db(administrador);

//Enviar consulta
$instruccion="select ID,USUARIO,CLAVE,PUESTO from usuario";

# NO USES EL TRUCO DEL OR. No hagas caso a los "gurús".
# Ofusca el código innecesariamente y no aporta nada.
# Mejor un "if" como Bob manda.
$consulta = @mysql_query($instruccion, $link)
if (!$consulta)
die ('<p style="color: red"><strong>FALLO EN LA CONSULTA</strong></p>
<!-- No olvides mostrar el error -->
<pre>'.mysql_error ().'</pre>
<!-- No olvides cerrar el documento. ;) -->
</body>
</html>');
//Mostrar resultados de la consulta
$nfilas=mysql_num_rows($consulta);
if($nfilas >0)
{
print("<table><tbody>\n");
print("<tr>\n");
print("<th>ID</th>\n");
print("<th>USUARIO</th>\n");
print("<th>CLAVE</th>\n");
print("<th>PUESTO</th>\n");
print ('</tr>'); # Olvidaste cerrar la fila.

for ($i=0; $i<nfilas; $i++)
{
$resultado=mysql_fetch_array($consulta);
print ("<tr>\n");
print ("<td>{$resultado['ID']}</td>/n");
print ("<td>{$resultado['USUARIO']}</td>/n");
print ("<td>{$resultado['CLAVE']}</td>/n");
print ("<td>{$resultado['PUESTO']}</td>/n");}
print ('</tr>'); # Olvidaste cerrar la fila.
} # Olvidaste cerrar el "for".
}else
mysql_close($conexion);
?>
<!-- Olvidaste cerrar la tabla -->
</tbody></table>
</body>
</html>
Puede parecerte una tontería, pero no lo es. Entre otras cosas, algunos navegadores (por ejemplo Internet Explorer 8, pero no es el único) entran en un "modo especial" si detectan un HTML anterior a HTML 4 o a XHTML 1, lo que suele traducirse en malas (o nulas) interpretaciones del CSS y el código JavaScript (de haberlo). Pásate por las W3C Schools (http://w3schools.com/), que no se tarda nada en leer la documentación básica del HTML (http://w3schools.com/html/default.asp), y aprendete la dirección de memoria porque sirve de mucho.

También te recomiendo que indexes y uses espacios, porque tu código es un cacao de cuidado, de ahí que olvides cerrar tablas y bloques.