Foros del Web » Programando para Internet » PHP »

while con php

Estas en el tema de while con php en el foro de PHP en Foros del Web. hola nesesito ayuda miren tengo un pequeño problema tengo este codigo que me muestra las notas , la asignatura y el rut del alumno @import ...
  #1 (permalink)  
Antiguo 03/12/2012, 18:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
while con php

hola nesesito ayuda miren tengo un pequeño problema tengo este codigo que me muestra las notas , la asignatura y el rut del alumno

Código PHP:
Ver original
  1. <?php
  2.  
  3. $codigo=$_GET['txt_codigo'];
  4.  
  5. require_once("conexion.php");
  6.  
  7.   $sql = mysql_query("SELECT usuario.usuario,asignatura.nombre_asig, notas.nota1 , notas.nota2 , notas.nota3 , notas.nota4
  8.   FROM usuario INNER JOIN notas INNER JOIN asignatura ON usuario.usuario = notas.rut_alumnos AND notas.cod_asig=$codigo");
  9.   echo "<table border='1'>
  10.  <tr>
  11.  <th>Name</th>
  12.  <th>Asignatura</th>
  13.  <th>nota 1</th>
  14.  <th>nota 2</th>
  15.  <th>nota 3</th>
  16.  <th>nota 4</th>
  17.  </tr>";
  18.   while ($row = mysql_fetch_array($sql)) {
  19.   echo "<tr>";
  20.   echo "<td>" . $row['usuario'] . "</td>";
  21.   echo "<td>" . $row['nombre_asig'] . "</td>";
  22.   echo "<td>" . $row['nota1'] . "</td>";
  23.   echo "<td>" . $row['nota2'] . "</td>";
  24.   echo "<td>" . $row['nota3'] . "</td>";
  25.   echo "<td>" . $row['nota4'] . "</td>";
  26.   echo "</tr>";
  27.   }
  28.   echo "</table>";
  29.  
  30.   mysql_close($con);
  31. ?>

y solo qiero mostrar una sola tabla pero me muestra las 5 que tengo
miren tengo 5 asignaturas con 4 notas cada una ingresadas con un mismo alumno
y solo quiero mostrar una sola asignatura con las 4 notas y el rut del alumno nada mas con el codigo que se le envia al $codigo=$_GET['txt_codigo']; ayuda porfavor
gracias
  #2 (permalink)  
Antiguo 03/12/2012, 18:31
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: while con php

tu problema radica en la consulta:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT usuario.usuario,asignatura.nombre_asig, notas.nota1 , notas.nota2 , notas.nota3 , notas.nota4
  2.      FROM usuario INNER JOIN notas ON usuario.usuario = notas.rut_alumnos INNER JOIN asignatura ON ASIGNATURA.cod_asig='$codigo';");

fijate que el ASIGNATURA.cod_asig se llame asi en tu base de datos.

PD: lo puse en mayusculas para que resate, pero ve en minisculas.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 03/12/2012, 18:34
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
Respuesta: while con php

si en la base de datos se llama asi y cuando no le coloco la variable y le dejo que ASIGNATURA.cod_asig=notas.cod_asig me muestra todas las tablas con sus respectivas asignaturas y sus respectivas notas pero no puedo hacer que solo me muestre una sola asignaturas y ls 4 notas y el usuario
  #4 (permalink)  
Antiguo 03/12/2012, 19:08
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
Respuesta: while con php

con este codigo me pasa lo mismo me salen todas las notas de las 5 asignaturas pero en ves de salirme las notas con sus respectivas asignaturas me sale el nombre de la asignatura repetido 5 veces y las notas de los ramos solo me cambia la asignatura pero me sigen saliendo todos los ramos
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT usuario.usuario,asignatura.nombre_asig, notas.nota1 , notas.nota2 , notas.nota3 , notas.nota4
  2.     FROM usuario INNER JOIN notas ON usuario.usuario = notas.rut_alumnos INNER JOIN asignatura ON ASIGNATURA.cod_asig='$codigo';");
  #5 (permalink)  
Antiguo 03/12/2012, 19:13
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 12 años, 2 meses
Puntos: 130
Respuesta: while con php

Creo que el problema esta en que no explicas muy bien que necesitas, almenos yo no logro comprenderte, puedes mostrar algun ejemplo de lo que quieres hacer?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #6 (permalink)  
Antiguo 03/12/2012, 19:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
Respuesta: while con php

pues mira cuando yo hago clik en notas se habre el while y me lanza los valores
y me muestra 5 tablas orizontales y verticales con el nombre del usuario la asignatura y las 4 notas y en los campos con sus respectivos valores yo solo quiero que me muestre el nombre del usuario la asignatura y las 4 notas pero de una sola asignatura onda que solo me muestre las notas la asignatura y el nombre de la asignatura con el codigo 001 espero alla quedado un poco mas claro sino me avisas
  #7 (permalink)  
Antiguo 03/12/2012, 19:29
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 12 años, 2 meses
Puntos: 130
Respuesta: while con php

Haber no entiendo mucho pero.. el problema que tienes es que te duplica los resultados, es eso? esi ese es el problema quitale el while:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $codigo=$_GET['txt_codigo'];
  4.  
  5. require_once("conexion.php");
  6.  
  7.   $sql = mysql_query("SELECT usuario.usuario,asignatura.nombre_asig, notas.nota1 , notas.nota2 , notas.nota3 , notas.nota4
  8.   FROM usuario INNER JOIN notas INNER JOIN asignatura ON usuario.usuario = notas.rut_alumnos AND notas.cod_asig=$codigo");
  9.   echo "<table border='1'>
  10.  <tr>
  11.  <th>Name</th>
  12.  <th>Asignatura</th>
  13.  <th>nota 1</th>
  14.  <th>nota 2</th>
  15.  <th>nota 3</th>
  16.  <th>nota 4</th>
  17.  </tr>";
  18. $row = mysql_fetch_array($sql);
  19.   echo "<tr>";
  20.   echo "<td>" . $row['usuario'] . "</td>";
  21.   echo "<td>" . $row['nombre_asig'] . "</td>";
  22.   echo "<td>" . $row['nota1'] . "</td>";
  23.   echo "<td>" . $row['nota2'] . "</td>";
  24.   echo "<td>" . $row['nota3'] . "</td>";
  25.   echo "<td>" . $row['nota4'] . "</td>";
  26.   echo "</tr>";
  27.   echo "</table>";
  28.  
  29.   mysql_close($con);
  30. ?>
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #8 (permalink)  
Antiguo 03/12/2012, 19:33
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
Respuesta: while con php

muchas gracias eso mismo era , gracias (Y)
  #9 (permalink)  
Antiguo 03/12/2012, 22:12
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: while con php

Cita:
Haber no entiendo mucho pero.. el problema que tienes es que te duplica los resultados, es eso? esi ese es el problema quitale el while:
Cita:
muchas gracias eso mismo era , gracias (Y)
pues revisa la consulta y agrega al final "LIMIT 1"

sino, el servidor SQL procesa las 5 asignaturas (tu solo muestras una pero se prosesan todas) y eso genera una sobrecarga innesesaria, si tienes mas de 2000 alumnos que listar veras claras diferencias de tiempo.

asi solo estas tapando el problema no solucionandolo. saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: mysql, sql, tabla, usuarios
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 13:02.