Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

No me muestra resultados***URGENTE

Estas en el tema de No me muestra resultados***URGENTE en el foro de Bases de Datos General en Foros del Web. Hola: Para resumir, la sesion funciona (aunque de 3 personas que hay en la BD solo dos me deja ingresar; siempre hay una (la misma ...
  #1 (permalink)  
Antiguo 18/04/2005, 15:27
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
No me muestra resultados***URGENTE

Hola:

Para resumir, la sesion funciona (aunque de 3 personas que hay en la BD solo dos me deja ingresar; siempre hay una (la misma siempre) que me dice no es correcta).

Formulario (nombre y cedula)+login.php y pasa a informacion.php

El problema es en informacion.php (no me muestra resultados si le quito el "whyle") pues me miestra este error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/entre2/public_html/webmaster/informacion.php on line 22

aqui va el codigo de login.php:
Código PHP:
<?php
session_start
();

include (
"config.php");

$ssql "SELECT * FROM estudiantes WHERE BINARY nombre='".$_POST['nombre']."' and cedula='".$_POST['cedula']."'";

$rs mysql_query($ssql,$con);

if (
mysql_num_rows($rs)!=0){

$_SESSION['autentificado'] = 'SI';
header ("Location: informacion.php");
exit;
}else {

header("Location: error.php");
exit;
}
?>
y ahora el de informacion.php:
Código PHP:
<?php
session_start 
();
if (!isset(
$_SESSION['autentificado']) || $_SESSION['autentificado'] != 'SI'){
    
header ("Location: formulario.php");
}

include (
"config.php");


$sql="SELECT materia,nota FROM estudiantes INNER JOIN (notas INNER JOIN materias ON notas.materia = materias.materia) ON estudiantes.cedula = notas.cedula WHERE estudiantes.cedula='".$_POST['cedula']."'"

$res=mysql_query($sql);


while(
$row=mysql_fetch_array($res)) 

{


echo 
"".$row[materia]."<br><br>";

echo 
"".$row[nota]."<br><br>";


}
?>
Click <a href="logout.php">aquí</a> para salir del sistema.
Dònde puede estar el error??????????
  #2 (permalink)  
Antiguo 18/04/2005, 15:28
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Perdon....
el error es asi:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/entre2/public_html/webmaster/informacion.php on line 12
  #3 (permalink)  
Antiguo 18/04/2005, 15:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Cita:
Editado por nicolaspar, quién no volvera a postear en este foro por consecuencias de la mala moderación de BrujoNic
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 26/08/2007 a las 11:09
  #4 (permalink)  
Antiguo 18/04/2005, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Te hace falta terminar el script cunado tu validación no se cumple .. sino el código continua ejecutandose ...
Código PHP:
session_start (); 
if (!isset(
$_SESSION['autentificado']) || $_SESSION['autentificado'] != 'SI'){ 
    
header ("Location: formulario.php"); 
    exit; 
// aquí termina el script .. el header() de tipo "location" ya redireccionará.


Por lo demás . .no sé si tendrás algún error en tu sentencia SQL (en el foro de Base de datos te pueden orientar) .. pero puedes verlo si usas:
Código PHP:
$res=mysql_query($sql) or die (mysql_error()); 
También puedes hacer la verificación:
Código PHP:
if (mysql_num_rows() > 0){
// ejecutas tus mysql_fetch_xxxx()

Un saludo,
  #5 (permalink)  
Antiguo 18/04/2005, 15:52
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
es que la tabla esta estructurada asi:

estudiantes:
id
nombre
cedula
fecha_nac
telefono

materias:
id
materia

notas:
id
cedula
materia
nota
ano
periodo
semestre


Todo me funciona bien (el INNER JOIN) hasta que le pongo:

Código PHP:
WHERE estudiantes.cedula='".$_POST['cedula']."' 
entonces me da el error que explique arriba.

Sin ese codigo final en la consulta, el INNER JOIN me funciona perfecto, solo que me muestra todos los datos de la tabla, no del usuario logeado.
  #6 (permalink)  
Antiguo 18/04/2005, 15:54
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
gracias Cluster, voy a probar...
  #7 (permalink)  
Antiguo 18/04/2005, 17:16
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Pues coregido el codigo asi:

Código PHP:
<?php
session_start 
();
if (!isset(
$_SESSION['autentificado']) || $_SESSION['autentificado'] != 'SI'){
    
header ("Location: formulario.php");
    exit;
}

include (
"config.php");


$sql="SELECT materia,nota FROM estudiantes INNER JOIN (notas INNER JOIN materias ON notas.materia = materias.materia) ON estudiantes.cedula = notas.cedula WHERE estudiantes.cedula='".$_POST['cedula']."'"

$res=mysql_query($sql) or die (mysql_error());


while(
$row=mysql_fetch_array($res)) 

{


echo 
"".$row[materia]."<br><br>";

echo 
"".$row[nota]."<br><br>";


}
?>

Click <a href="logout.php">aquí</a> para salir del sistema.
Ahora me muestra el siguiente mensaje:

Column: 'materia' in field list is ambiguous
  #8 (permalink)  
Antiguo 18/04/2005, 17:19
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 20 años, 1 mes
Puntos: 0
con que base de datos estas trabajando???

Saludos

Mauricio
  #9 (permalink)  
Antiguo 18/04/2005, 17:38
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
trabajo con MySql
  #10 (permalink)  
Antiguo 19/04/2005, 06:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Ya que ahora obtienes un mensaje de error claro de SQL .. lo mejor es aclararlo en el foro de "Base de datos".

Muevo tu mensaje a dicho foro para que te orienten.

Un saludo,
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 04:20.