Inner join con php

Ojala me puedas ayudar a resolver este problema.
Tengo una base de datos con dos tablas alumnos y materias, con un from solicito los datos de un alumno y me presente estos, pero al correr en el servidor me aparecen todos los alumnos, mis códigos son los siguientes:
El form:
<form method="post" action="selecc1.php">
Por favor escriba su codigo: <input name="cedula" type="text">
<td align="center"><input value="Enviar" type="submit"></td>
<td align="center"><input value="Borrar" type="reset"></td>
</form>
y el php:
<?php
mysql_connect("localhost","root","la tuya");
mysql_select_db("escuela");
$cedula= $_POST['cedula'];
$result = mysql_query("SELECT * FROM alumnos INNER JOIN materias ON alumnos.cedula = materias.cedula")
or die (mysql_error());
$row = mysql_fetch_array($result);
 ?>
<table width="58" border="5">
<tr>
<td align="center">datos</td>
</tr>
 <?
echo "
<tr>
<td>cedula</td>
";
echo "
<td>nombre</td>
";
echo "
<td>apellidos</td>
";
echo "
<td>español</td>
";
echo "
<td>matematicas</td>
";
echo "
<td>naturales</td>
";
echo "
<td>coahuila</td>
";
echo "
<td>etica</td>
";
echo "
<td>mensaje</td>
";
while ($row=mysql_fetch_array($result)) {
echo "
<tr>
";
echo "
<td>".$row['cedula']."</td>
";
echo "
<td>".$row['nombre']."</td>
";
echo "
<td>".$row['apellidos']."</td>
";
echo "
<td>".$row['espanol']."</td>
";
echo "
<td>".$row['matematicas']."</td>
";
echo "
<td>".$row['naturales']."</td>
";
echo "
<td>".$row['coahuila']."</td>
";
echo "
<td>".$row['etica']."</td>
";
echo "
<td>".$row['mensaje']."</td>
";
 }
 ?>
</table>

1 respuesta

Respuesta
1
Como estas, mira he leído tu pregunta y te comento lo siguiente:
La consulta que tienes:
$result = mysql_query("SELECT * FROM alumnos INNER JOIN materias ON alumnos.cedula = materias.cedula")
Te regresa los datos de todos los alumnos por que las cédulas de todos los alumnos se encuentran en la tabla de materias, además de un detalle que pasaste por alto, y es que no haz usado $cedula= $_POST['cedula']; en tu consulta, esto lo corriges cambiando tu consulta por:
$result = mysql_query("SELECT * FROM alumnos INNER JOIN materias ON alumnos.cedula = materias.cedula and materias.cedula='".$cedula."'")
Saludos y suerte con tus consultas!
Por cierto, gracias por toda la información proporcionada, así hasta da gusto ayudar :-D
Buenas noches.
Te agradezco me hayas contestado a mi pregunta, he corregido la consulta y funciona a la perfección, por lo de la información creo que algunos no ponen todo el código por temor a que se los copien o algo así, pero como citas si no exponemos el problema como debe de ser como nos van a ayudar.
Nuevamente te agradezco tu atención, tiempo y conocimientos a mi pregunta.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas