Foros del Web » Programando para Internet » PHP »

Problema con consulta

Estas en el tema de Problema con consulta en el foro de PHP en Foros del Web. Código: $resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año"); $resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC"); while ($not=mysql_fetch_array($resultN)) { while ($part=mysql_fetch_array($resultA)){ if ($part['cedula'] == ...
  #1 (permalink)  
Antiguo 21/09/2009, 20:01
 
Fecha de Ingreso: junio-2009
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con consulta

Código:
$resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año"); $resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC"); 
while ($not=mysql_fetch_array($resultN)) {
while ($part=mysql_fetch_array($resultA)){ 
if ($part['cedula'] == $not['cedula']){ 
$i= $i + 1;
 echo "<tr>"; 
echo "<td>$i</td>"; 
echo "<td>$part[apellido], $part[nombre]</td>";
 echo "<td>$part[cedula]</td>";
 echo "<td><img src='$part[foto]'></td>";
 echo "<td><input type='text' name='nota' id='inputnota' class=\"validate['number']\" maxlength='2' value='$not[$no]'></td>"; 
echo "</tr>"; 
} 
} 
}
Existe alguna manera de liberar la variable $part para no repetir tanto la consulta, ya que puede ocupar mucho espacio…..

Código:
$resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año"); 
while ($not=mysql_fetch_array($resultN)) {
 ///ojo cuando repito el querry aca si funciona
$resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC"); 
while ($part=mysql_fetch_array($resultA)){ 
if ($part['cedula'] == $not['cedula']){ 
$i= $i + 1;
 echo "<tr>"; 
echo "<td>$i</td>"; 
echo "<td>$part[apellido], $part[nombre]</td>";
 echo "<td>$part[cedula]</td>";
 echo "<td><img src='$part[foto]'></td>";
 echo "<td><input type='text' name='nota' id='inputnota' class=\"validate['number']\" maxlength='2' value='$not[$no]'></td>"; 
echo "</tr>"; 
} 
} 
}
  #2 (permalink)  
Antiguo 21/09/2009, 20:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con consulta

Puedes usar unset() para liberar la variable.

Saludos.
  #3 (permalink)  
Antiguo 23/09/2009, 13:33
 
Fecha de Ingreso: junio-2009
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
Busqueda Respuesta: Problema con consulta

Porque no muestra los resultados ordenados en que estoy mal..........

Código PHP:
$resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año");
while (
$not=mysql_fetch_array($resultN)) {
                                            
                                            
$resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC");
                                            
while (
$part=mysql_fetch_array($resultA)){
    
    if (
$part[0] == $not[1]){
         
$i$i 1;
        echo 
"<tr>";
        echo 
"<td>$i</td>";
        echo 
"<td>$part[2], $part[1]</td>";
        echo 
"<td>$part[0]</td>";
        echo 
"<td><img src='$part[10]'></td>";
        echo 
"<td><input type='text' name='ident[$part[0]]' value='$not[$no]' id='inputnota'  maxlength='2'></td>";
        echo 
"</tr>";    
    }
}
                                

  #4 (permalink)  
Antiguo 23/09/2009, 13:52
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problema con consulta

pues yo lo veo mal y bien mal xD

No se porque encierras
Código PHP:
                                            $resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC"); 
                                             
while (
$part=mysql_fetch_array($resultA)){ 
     
    if (
$part[0] == $not[1]){ 
         
$i$i 1
        echo 
"<tr>"
        echo 
"<td>$i</td>"
        echo 
"<td>$part[2], $part[1]</td>"
        echo 
"<td>$part[0]</td>"
        echo 
"<td><img src='$part[10]'></td>"
        echo 
"<td><input type='text' name='ident[$part[0]]' value='$not[$no]' id='inputnota'  maxlength='2'></td>"
        echo 
"</tr>";     
    } 
dentro de la consulta anterior, ni una ni la otra tienen nada que ver, o asi me parece, entiendo que lo que quieres hacer es, sacar las notas de un alumno y luego mostrar los datos de tal alumno, en tal caso ambas tablas deberian tener algo en comun, que seria el ID del alumno, podrias hacer una sola consulta uniendo ambas tablas con JOIN o WHERE, si es asi como yo entiendo.

Porque ese codigo repite y repite la misma consulta con tantas notas existan, por lo que carece de logica en mi opinion
  #5 (permalink)  
Antiguo 23/09/2009, 14:01
 
Fecha de Ingreso: junio-2009
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
dando y dando resulto lo que queria pero rudy69 me ha dado una idea a ver eso de una sola consulta

asi me da los resultados
Código PHP:
$resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC");
while (
$part=mysql_fetch_array($resultA)) {    
$resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año");
while (
$not=mysql_fetch_array($resultN)){                            if ($part[0] == $not[1]){
        
$i$i 1;
        echo 
"<tr>";
        echo 
"<td>$i</td>";
        echo 
"<td>$part[2], $part[1]</td>";
        echo 
"<td>$part[0]</td>";
        echo 
"<td><img src='$part[10]'></td>";
echo 
"<td><input type='text' name='ident[$part[0]]' value='$not[$no]' id='inputnota'  maxlength='2'></td>";
echo 
"</tr>";    
}
}

en una tabla tengo por ejemplo 100 alumnos con sus datos (id_alumno) en otra tabla tengo las notas por curso con el (id_alumno) como quedaria si quiero unir las dos consultas anteriores
Código PHP:
$resultA=mysql_query("select * from datos_alumno ORDER BY apellido ASC");
$resultN=mysql_query("select * from nota where postgrado='$codigo' and año=$año"); 
ME RESPONDERE YO MISMO:

Solucion hacer una sola consulta

Código PHP:
$general mysql_query("SELECT * FROM datos_alumno, nota WHERE nota.postgrado='$codigo' and nota.año=$año and datos_alumno.cedula=nota.cedula ORDER BY datos_alumno.apellido ASC "); 

Última edición por GatorV; 23/09/2009 a las 15:23
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 17:51.