Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: royerphpmysql en 20 Marzo 2010, 06:12 am



Título: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 06:12 am
hola alguien me podria ayudar en ver donde tengo el error sucede que doy un numer de matricula para que sea leid y me muestre de x matriculaunas calificaciones pero no me respeta el numero qeu le doy y me arroja solo 1, espero puedan ayudarme, gracias

 quiero filtrar la consulta por matricula y hago una pregunta asi.

<form action="consultasola.php" method="post">
   <div align="left">
     <h1 align="center">Consulta de Calificaciones</h1>
     <p> <br>
       Matricula del Alumno:
       <input name="matricula" type="text" id="matricula" size="17">
       <input type=submit name="Buscar" value="Buscar">
       </p>
   </div>
   <td><div align="center">
     <h3><a href="entra.php">Retornar al Men&uacute; Principal </a></h3>
     <p>&nbsp;</p>
     <p>Tarea Sistema de Administracion de Alumnos</p>
   </div>
   </form>


y el otro programa qe se llama consultasola.php est asi

   // Conectar con el servidor de base de datos
      $conexion = mysql_connect ("localhost", "root", "root")
         or die ("No se puede conectar con el servidor");

   // Seleccionar base de datos
      mysql_select_db ("escuela")
         or die ("No se puede seleccionar la base de datos");

   // Obtener datos
 $matricula= $_REQUEST['matricula']; <---------aqui tambien utilice el GET y me sigue mostrando el resultado anterior, le puse el POST y tampoco me lo aceptal

 
   
       $res=mysql_query("SELECT alumnos.nombres, alumnos.apellidos, alumnos.matricula, kardex.calif1A, kardex.codigomateria FROM alumnos, kardex WHERE kardex.matricula=alumnos.matricula");

       $row=mysql_fetch_array($res); //hago esto, para poder tomar el nombre antes de entrar al WHILE.
       echo "El alumno ".$row['nombres']." ".$row['apellidos']." y con  Matricula: ".$row[matricula]." obtuvo las siguientes calificaciones:</br>";

         while($row=mysql_fetch_array($res)){   
         
         echo "Materia: ".$row['codigomateria']." | Calificacion: ".$row['calif1A']."</br>";


       }
echo "<ul> </ul>";

       
              echo "<ul> </ul>";
       echo "<td><div align=left><a href=entra.php>Retornar al Menú Principal</a></div></td>";



Título: Re: Ayuda con Consulta
Publicado por: Nakp en 20 Marzo 2010, 06:34 am
que weba leer tu codigo... usa geshi

ademas es:
 mysql_select_db ("escuela", $conexion);

etc, etc, etc, la conexion no se crea de adorno y no estas trabajando con un objeto, tienes que usarla practicamente en todas las funciones que interactuen con la BD, mysql_fetc_array interactua con un resultset, por lo tanto no la usas con este :P

saludos

pd: arregla el codigo xD ponlo entre [code=html4strict][/code] y [code=php][/code]


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 08:19 am
gracias por tu comentario pero eso no me ayuda. saludos y buena noche


Título: Re: Ayuda con Consulta
Publicado por: WHK en 20 Marzo 2010, 08:50 am
Código:
 $matricula= $_REQUEST['matricula'];

haz una busqueda en tu documento y dime cuantas veces se repite la variable "$matricula"


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 09:21 am
hola amigo gracias. yo lo que quier hacer es lo siguiente

$res=mysql_query("SELECT alumnos.nombres, alumnos.apellidos, alumnos.matricula, kardex.calif1A, kardex.codigomateria FROM alumnos, kardex WHERE kardex.matricula=alumnos.matricula");


en este query como le pongo una variable cargada desde un formulario?

lo que pasa que consulto a tablas pero antes quiero pedir el dato de matricula para que me muestre esa matricula que necesito. espero entenderme.


Título: Re: Ayuda con Consulta
Publicado por: rob1104 en 20 Marzo 2010, 10:02 am
Hola, creo que la consulta correcta seria:

$res=mysql_query("SELECT alumnos.nombres, alumnos.apellidos, alumnos.matricula, kardex.calif1A, kardex.codigomateria FROM alumnos INNER JOIN kardex ON kardex.matricula=alumnos.matricula WHERE alumnos.matricula = $matricula");

Saludos


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 10:11 am
hola amigo creo que no pegaste el codigo, no lo veo

saludos


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 10:22 am
WAOOOOOOO te debo unos TEQUILAS ya te agrege al MSN pa ponernos de acuerdo D: D:


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 20 Marzo 2010, 10:28 am
aprovechando de tu inteligencia ROB como le haria para ligar una tercera tabla ?


Título: Re: Ayuda con Consulta
Publicado por: rob1104 en 20 Marzo 2010, 21:27 pm
aprovechando de tu inteligencia ROB como le haria para ligar una tercera tabla ?
Solo vas agregando mas INNER JOIN de acuerdo a tus necesidades, coloca tu tercera tabla, los campos que quieras ligar y la condicion que tendrá para poder ligarla y asi armamos la consulta.

Saludos


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 21 Marzo 2010, 04:55 am
Hola Roberto

como estas.

espero me puedas ayudar.

tengo el siguiente codigo.

$res=mysql_query("SELECT alumnos.nombres, alumnos.apellidos, alumnos.matricula, kardex.calif1A, kardex.fechacalif, materias.materia FROM alumnos INNER JOIN kardex INNER JOIN materias ON kardex.matricula=alumnos.matricula WHERE alumnos.matricula =".$_POST['matricula']);


       $row=mysql_fetch_array($res); //hago esto, para poder tomar el nombre antes de entrar al WHILE.
   
            
       echo "<td><div align=left>El alumno ".$row['nombres']." ".$row['apellidos']." y con  Matricula: ".$row[matricula]." obtuvo las siguientes calificaciones:</a></div></td></br>";

   echo '<table>';
   echo '<tr>';
   echo '<td><b>Materia</b></td><td><b>Calificacion</b><td><b>Fecha Calificacion</b></td>';
   echo '</tr>';
   echo '<tr>';
   echo '<td>'.$row['materia'].'</td><td>'.$row['calif1A'].'</td><td>'.$row['fechacalif'].'</td>';
   echo '<td>';
   while($row=mysql_fetch_array($res))
   {
   echo '<tr>';
   echo '<td>'.$row['materia'].'</td><td>'.$row['calif1A'].'</td><td>'.$row['fechacalif'].'</td>';
   echo '</tr>';
   echo '<td>';
   }
   echo '</table>';
         

y el resultado es este.


El alumno CELINA NINFA GUERRA y con Matricula: 91901014428 obtuvo las siguientes calificaciones:

Materia Calificacion Fecha Calificacion
INGLES I 90 01/01/2010 
INGLES I 90 01/01/2010
 
INGLES I 80 01/01/2010
 
INGLES I 70 01/01/2010
 
MATEMATICAS I 90 01/01/2010
 
MATEMATICAS I 90 01/01/2010
 
MATEMATICAS I 80 01/01/2010
 
MATEMATICAS I 70 01/01/2010
 
TALLER DE REDACCION I 90 01/01/2010
 
TALLER DE REDACCION I 90 01/01/2010
 
TALLER DE REDACCION I 80 01/01/2010
 
TALLER DE REDACCION I 70 01/01/2010
 
METODOLOGIA DE LA LECTURA 90 01/01/2010
 
METODOLOGIA DE LA LECTURA 90 01/01/2010
 
METODOLOGIA DE LA LECTURA 80 01/01/2010

a que cres que se deba que sale repetido el resultado de materias? tengo qeu agregarle algo adicional al codigo.

gracias por tu ayuda


Título: Re: Ayuda con Consulta
Publicado por: rob1104 en 21 Marzo 2010, 08:11 am
Hola, creo que el INNER JOIN esta mal estructurado.

Intenta de esta forma:
$res=mysql_query("SELECT alumnos.nombres, alumnos.apellidos, alumnos.matricula, kardex.calif1A, kardex.fechacalif, materias.materia FROM alumnos INNER JOIN kardex ON kardex.matricula=alumnos.matricula INNER JOIN materias ON materias.materia = kardex.codigomateria WHERE alumnos.matricula =".$_POST['matricula']);

Saludos


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 21 Marzo 2010, 21:28 pm
nel pastel no jalo marco error de sintaxis


Título: Re: Ayuda con Consulta
Publicado por: ~ Yoya ~ en 21 Marzo 2010, 21:35 pm
royerphpmysql usa BBCODE.


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 21 Marzo 2010, 21:48 pm
com le hago? para usar BBCODE


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 21 Marzo 2010, 21:53 pm
ya lo encontre gracias


Título: Re: Ayuda con Consulta
Publicado por: Shell Root en 21 Marzo 2010, 21:53 pm
Supongo que lo que dice ~ Yoya ~, esque metas el codigo, dentro de las etiquetas correspondientes, es decir, pon tu code dentro de la etiqueta (http://foro.elhacker.net/Themes/converted/images/bbc/code.gif), además de selecccionar el lenguaje de programacion que estas usando.


Título: Re: Ayuda con Consulta
Publicado por: royerphpmysql en 21 Marzo 2010, 22:18 pm
gracias a todos por su valiosa ayuda, ya pude resolver el problema.

no necesite hacerle el inner join a la tercera tabla de materias ya que las materias las tengo agregadas en un VALUE  en un formulario de carga de calificciones y automaticamente se estaba almacenando en la tabla kardex, ya las pude tomar alli gracias nuevamente