Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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
$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
Cita de: royerphpmysql en 20 Marzo 2010, 10:28 AM
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