Foros del Web » Programando para Internet » PHP »

Repeticion de Datos

Estas en el tema de Repeticion de Datos en el foro de PHP en Foros del Web. Hola tengo un problema y es que tengo que tengo dos tablas una de Materias y otra de Notas. En la tabla de materias entan ...
  #1 (permalink)  
Antiguo 10/11/2004, 08:15
 
Fecha de Ingreso: marzo-2002
Mensajes: 60
Antigüedad: 15 años, 9 meses
Puntos: 0
Repeticion de Datos

Hola tengo un problema y es que tengo que tengo dos tablas una de Materias y otra de Notas.
En la tabla de materias entan los nombres de las materias y la de notas la calificacion de las materias relacinados con el codigo de la materia que es que relaciona las dos tablas.
Cual es el problema.

QUe por estudiante son mas te una materia y cuanto relaciono la tabla para que me busque los con los de materia lo hace bien. pero sole me trae el primer valor y no me tre los demas

Ej:

Codigo --------- Materia --------- Nota
123 Nose que 80
145 89
245 90

y si no es asi lo que me hace es que me repetie la materia en las demas columnas.


Codigo --------- Materia --------- Nota
123 Nose que 80
145 Nose que 89
245 Nose que 90


haber quie me puede Ayudar
Aqui les dejo el Codigo



Esta son las dos cunsultas

Código PHP:
$query_Semestre "SELECT distinct semestre FROM notas WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."'";
$Semestre mysql_query($query_Semestre$Estudiantes) or die(mysql_error());
$row_Semestre mysql_fetch_assoc($Semestre);
$totalRows_Semestre mysql_num_rows($Semestre);

//////////////////////////////////////////////////
$_SESSION['inimat']=$row_Notas['inimat'];
$_SESSION['nummat']=$row_Notas['nummat'];
//////////////////////////////////////////////////

mysql_select_db($database_Estudiantes$Estudiantes);
$query_Materias "SELECT nommat FROM materias WHERE inimat = '".$_SESSION['inimat']."' AND nummat ='".$_SESSION['nummat']."'";
$Materias mysql_query($query_Materias$Estudiantes) or die(mysql_error());
$row_Materias mysql_fetch_assoc($Materias);
$totalRows_Materias mysql_num_rows($Materias); 

Aqui lo otro



Código PHP:
 <TD height="41" COLSPAN=4 valign="top">
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <!--DWLayoutTable-->
        <tr bgcolor="#666666">
          <td width="800" height="19"><div align="center" class="Estilo9">Codigo</div></td>
          <td width="800"><div align="center" class="Estilo9">Materia</div></td>
          <td width="800"><div align="center" class="Estilo9">Tipo</div></td>
          <td width="800"><div align="center" class="Estilo9">Nota</div></td>
        </tr>
        <?php do {     ?>
        <?php do { ?>

        <tr>
          <td height="22" bgcolor="#999999"><div align="center"><?php echo $row_Notas['inimat'];?>-<?php echo $row_Notas['nummat'];?></div></td>
          <td bgcolor="#999999"><center>
            <?php echo $row_Materias['nommat']; 
            } while (
$row_Materias mysql_fetch_assoc($Materias));
            
?>
                    
          </center></td>
          <? 
                  
          
/// Coversion de tipo de materia //
          
if ($row_Notas['tipo']==R)     {
                    
$row_Notas['tipo']=Regular;
                    }    elseif 
                            (
$row_Notas['tipo']==C)      {
                              
$row_Notas['tipo']=Concentración;
                              }  elseif 
                                  (
$row_Notas['tipo']==E) {
                                
$row_Notas['tipo']=Electiva;
                                   } else {
                                        
$row_Notas['tipo']='&nbsp;';}
                                        
// termino coversion tipo de matatia //
           
?>
          <td bgcolor="#999999"><div align="center"><?php echo $row_Notas['tipo'];?></div></td>
          <td bgcolor="#999999"><div align="center"><?php echo $row_Notas['nota'];?></div></td>
        </tr>
        <?php } while  ($row_Notas mysql_fetch_assoc($Notas));?>
      </table></TD>
  </TR>
    <TR>
    
  </TR>
    <TR>
      <TD height="90" COLSPAN=4 valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
        <!--DWLayoutTable-->
        <tr>
          <td width="455" height="23">&nbsp;</td>
          <td width="328" valign="top">            
          <div align="right">
            <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="Selecionsemestre" id="Selecionsemestre">
              <input name="Send" type="submit" id="Send" value=":.>>:.">
              <select name="semestre" id="semestre">
                <option value='2-2003'>Selecione Semestre</option>
                <?php do {  ?>
  
                <option value="<?php echo $row_Semestre['semestre']?>"><?php echo $row_Semestre['semestre']?></option>
                <?php 
                    
} while ($row_Semestre mysql_fetch_assoc($Semestre));
                          
$rows mysql_num_rows($Semestre);
                              if(
$rows 0) {
                              
mysql_data_seek($Semestre0);
                              
$row_Semestre mysql_fetch_assoc($Semestre);
                      }
                
?>
              </select>
            </form>
          </div></td>


haber quien me puede ayudar
__________________
Viva la Republica Dominicana
  #2 (permalink)  
Antiguo 10/11/2004, 09:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No he revisado al detalle tus consultas SQL .. pero .. ¿las has probado en algún GUI para Mysql tipo phpMyadmin o cualquier otro? .. Es decir ... has comprobado que las sentencias SQL que ahí usas entregan los valores esperados ?

Por otro lado .. si tu tabla materias y notas se relacionan por algún campo que usas tipo "clave foránea" (PK) .. deberías usar más SQL para implementar en una sóla consulta SQL la obtención de los resultados que necesitas de ambas tablas bajo las condiciones que ahí necesitas. Para eso tendrías que usar "JOIN" de SQL o subconsultas standars (dependiendo de que versión de Mysql uses)

Un saludo,
  #3 (permalink)  
Antiguo 11/11/2004, 10:02
 
Fecha de Ingreso: marzo-2002
Mensajes: 60
Antigüedad: 15 años, 9 meses
Puntos: 0
Ya lo solucione

Gracias Cluster por tu Ayuda ya Solucine el problema

Esta fue la consulta que Utilice


SELECT `materias`.`nommat`, `notas`.`tipo`, `notas`.`ano`, `notas`.`mat`, `notas`.`inimat`, `notas`.`nummat`, `notas`.`numcarr`, `notas`.`semestre`, `notas`.`nota`
FROM `materias` INNER JOIN `notas` ON (`materias`.`inimat` = `notas`.`inimat`) AND (`materias`.`nummat` = `notas`.`nummat`)
WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."' And semestre ='".$_POST['semestre']."'
__________________
Viva la Republica Dominicana
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 21:59.