Foros del Web » Programando para Internet » PHP »

Problemilla con Base de datos

Estas en el tema de Problemilla con Base de datos en el foro de PHP en Foros del Web. Hola a todos. Tengo una web que he hecho montando Apache, PHP y MySQL. Todos me van bien, ya que no están capados por firewall ...
  #1 (permalink)  
Antiguo 23/03/2009, 17:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 13
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemilla con Base de datos

Hola a todos.

Tengo una web que he hecho montando Apache, PHP y MySQL. Todos me van bien, ya que no están capados por firewall y se ven al exterior. Lo malo es una cosa, y es que estaba probando el MySQL, poniendo éste código (Soy estudiante de Grado Medio y esto es nuevo para mí):

Código:
<html>
<head>
	<title>MySQL</title>
<body>
<?php
$servidor="192.168.1.33";
$usuario="...";
$password="...";
$connexio=mysql_connect($servidor,$usuario,$password);

if ($connexio)
	echo "<br><h2><b><center>La conexión ha sido realizada con éxito.</center></b></h2></br>";
else
{
	echo "<br><h2><b><center>¡¡Fallo de la conexión!! Puede que haya fallado la conexión con la base de datos, disculpe por las molestias.</center></b></h2></br>";
}
if (mysql_select_db ("jm",$connexio))
{
$SQL="select * from prueba";
$resultado=mysql_query ($SQL,$connexio);
$fila=mysql_fetch_array ($resultado);
while ($fila=mysql_fetch_array ($resultado))
{
echo "Código: $fila[id]<br/>";
echo "Título: $fila[Nombre]<br/>";
echo "Año: $fila[Ano]<br/>";
echo "Total: $num<br/>";
$num=mysql_num_rows($resultado);
}
}
else
{
	echo "<br><h2><b><center>La conexión a la base de datos no ha sido realizada...</center></b></h2></br>";
	exit();
}
$connexio=mysql_close ($connexio);?>
</body>

</html>
El caso es que se me aparece solamente la confirmación de que se ha conectado y ya está. Se supone que se tendría esto y los datos de la consulta.

¿Alguna solución a esto? ¿Es que la base de datos la tendré mal? La base es esta:
Código:
DROP TABLE IF EXISTS `jm`.`prueba`;
CREATE TABLE  `jm`.`prueba` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(45) NOT NULL,
  `Ano` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Saludos y gracias!!

Postdata: Perdón por el tocho...
  #2 (permalink)  
Antiguo 23/03/2009, 18:21
Avatar de fallenagus  
Fecha de Ingreso: noviembre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 52
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Problemilla con Base de datos

Buenas aca una respuesta a la rápida:

-por lo que veo en la creación de tu tabla solo tenes un registro en la misma. y yo pienso que no te aparece el dato en tu html por esto:

Cita:
Iniciado por knucles Ver Mensaje
...
$resultado=mysql_query ($SQL,$connexio);
$fila=mysql_fetch_array ($resultado);
while ($fila=mysql_fetch_array ($resultado))
...
estas haciendo un "fetch array" antes del while y eso ya te puso el puntero en el primer y unico registro de tu tabla, entonces cuando entra al while ya no hay nada que mostrar. cada vez que haces un "fetch" es un movimiento hacia adelante. proba quitando ese "fetch" que haces antes del while y ve que pasa:

Código php:
Ver original
  1. ...
  2. $resultado=mysql_query ($SQL,$connexio);
  3. while ($fila=mysql_fetch_array ($resultado))
  4. ...

asi cuando entre al while va a empezar desde cero.
  #3 (permalink)  
Antiguo 24/03/2009, 10:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 13
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemilla con Base de datos

Cita:
Iniciado por fallenagus Ver Mensaje
Buenas aca una respuesta a la rápida:

-por lo que veo en la creación de tu tabla solo tenes un registro en la misma. y yo pienso que no te aparece el dato en tu html por esto:



estas haciendo un "fetch array" antes del while y eso ya te puso el puntero en el primer y unico registro de tu tabla, entonces cuando entra al while ya no hay nada que mostrar. cada vez que haces un "fetch" es un movimiento hacia adelante. proba quitando ese "fetch" que haces antes del while y ve que pasa:

Código php:
Ver original
  1. ...
  2. $resultado=mysql_query ($SQL,$connexio);
  3. while ($fila=mysql_fetch_array ($resultado))
  4. ...

asi cuando entre al while va a empezar desde cero.
Muchas gracias, el problema se ha resuelto, ahora me muestra la consulta. También he puesto un echo del while y ahora me cuenta las filas.

Saludos y gracias!
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 08:55.