consulta msql en tablas con campos ID

Iniciado por yosoytusol, 29 Agosto 2014, 23:54 PM

0 Miembros y 1 Visitante están viendo este tema.

yosoytusol

Hola a todos y todas.
Estoy haciendo una consulta  a una tabla donde hay un campo Id.
Todo bien, pero en la respuesta correspondiente al Id me responde con un numero (que es el que corresponde a la respuesta de texto).
Cuál sería el script correcto para que en vez del número aparezca el nombre correspondiente al examen?
Este es el script que tengo y cuando lo ejecuto me dice :Indefined index: result2 in C:....



<?php
    include ("conexion.php");
   
?>

<html>
    <meta http-equiv="Content-type" content="text/html; charset=utf8" />
    <head>
    <title>Alumnos</title>
        </head>
    <body>
    <center>
    <br>
   
    <?php
    mysql_query("set names 'iso-8859-1'");
       
    $documento=$_POST['nombre'];
    $tabla="pag_alumn";

$sql = "SELECT   nombre,identificacion, apellidos,telefono,Idexam_alumn,profesor,factura,hor_por_pagar,saldo_por_pagar,fe_saldo FROM $tabla where nombre='$documento' AND (saldo_por_pagar NOT IN (0))  ORDER BY fe_saldo";

   
$result = mysql_query($sql);

    $result = mysql_query("SELECT  nombre,identificacion,  apellidos, telefono,Idexam_alumn ,profesor,factura,hor_por_pagar,saldo_por_pagar,fe_saldo FROM $tabla where nombre='$documento' AND (saldo_por_pagar NOT IN (0)) ORDER BY fe_saldo");



$exam = 'Idexam_alumn';

$result2 = mysql_query("SELECT examen, from exámenes where Idexam_alumn='$exam'");

     if ($row = mysql_fetch_array($result))
{
    echo "<table border = '1'><caption align='top'><font color=red><big><big><strong>SALDOS ALUMNOS</strong></font></big></caption> \n";
    echo "<tr></td><th><strong><font color = blue>Nombre</font></strong></td><th><strong><font color =blue>Apellidos</FONT></strong></td><th><strong><font color = blue>Identificacion</font></strong></td><th><strong><font color = blue>Tel&eacute;fono</font></strong></td><th><strong><font color = blue>Examen</font></strong></td><th><strong><font color = blue>Profesor</font></strong></td><th><strong><font color = blue>Factura</font></strong></td><th><strong><font color =darkness red>Horas por pagar</font></strong></td><th><strong><font color =darkness red>Saldo por Pagar</font></strong></td><th><strong><font color = darkness red>Fecha Saldo</font></strong></td></th></tr> \n";
    do {
    echo "<tr><td>".$row["nombre"]."</td><td>".$row["apellidos"]."</td><td>".$row["identificacion"]."</td><td>".$row["telefono"]."</td><td>".$row["result2"]."</td><td>".$row["profesor"]."</td><td>".$row["factura"]."</td><td>".$row["hor_por_pagar"]."</td><td>".$row["saldo_por_pagar"]."</td><td>".$row["fe_saldo"]."</td></tr> \n";
    } while ($row = mysql_fetch_array($result));


    echo "</table>";
    } else {
    echo "! No se ha encontrado ningun registro !";
    }
    ?>
   

    </center>
    </body>
</html>

Markul

El error que te causa eso supongo que es en la declaracion de $result2  ,la consulta mysql esta mal hecha,te sobra una  coma antes del from. Pruebalo despues de esto.

yosoytusol

Gracias MARKUL
Pero ahora me sale:
Undefined index: Resource id #7 in C:\wamp\www\getready\consulta_saldospru.php on line 61.
Eectivamente allí tengo la ROW "$result2"

Markul

Otra cosa que veo es en la variable $exam,le pones a la variable la cadena"idexam_alumn'pero  luego eso lo usas para compararlo con el contenido de los campos  Idexam_alum. Es decir ,que hasta donde yo comprendo en ese punto deberias pasarle ,un numero ID a $exam (por ejemplo 1 ,o 3 o 5,etc) supongo que viendo tu codigo lo apropiado seria que el valor fuera determinado en una caja de texto,y en este script lo recojas con POST.
Si no estoy equivocado, prueba primero a poner  $exam=1(o el numero id de un registro que conozcas)  ,y ejecuta el codigo ,comprueba que ya te haga bien la consulta.
Espero que ya te lo ejecute bien.

yosoytusol

Bueno
Nada amigo, le puse $exam=3  que es un registro que conozco su respuesta, pero nada.
También hice $exam=$_POST['Idexam_alumn']  y NADA.
Le agradezco mucho su intención , pero me da pena seguirlo molestando. Me gustaría que pudieras ver en algun momento, estas consultas que corresponden a una base de datos que estoy haciendo para un hijo, PERO SE QUE ES MUCHO PEDIR Y LA VERDAD NO TENGO MUCHA EXPERIENCIA EN ESTO.
MUCHAS GRACIAS

Markul

#5
No te preocupes ,una vez que me topo con un error me cuesta dejarlo apartado,me entretiene xD Si quieres enviarme mas info despues de esto ,no me importa.
Otro fallito que veo es que dentro del "do while"  utilizas $row["result2"] esta mal hecho pues ahi deberia estar el nombre de un campo (examenes ,en esa consulta que hiciste) pero para eso necesitas leer los datos de la consulta ,creando otra variable $row2 seria algo tal que asi ,si no me equivoco.
EDITO:tambien me di cuenta de otra cosa y como querias que se hiciera el codigo en un principio,he cambiado un par de cosas para que te funcione correctamente.
Código (php) [Seleccionar]

do {
 
   $exam = $row['Idexam_alumn'];
   $result2 = mysql_query("SELECT examen, from exámenes where Idexam_alumn='$exam'");
  $row2 = mysql_fetch_array($result2)

   echo "<tr><td>".$row["nombre"]."</td><td>".$row["apellidos"]."</td><td>".$row["identificacion"]."</td><td>".$row["telefono"]."</td><td>".$row2["examenes"]."</td><td>".$row["profesor"]."</td><td>".$row["factura"]."</td><td>".$row["hor_por_pagar"]."</td><td>".$row["saldo_por_pagar"]."</td><td>".$row["fe_saldo"]."</td></tr> \n";
   } while ($row = mysql_fetch_array($result));


Pon este fragmento de codigo y me cuentas :)