Foros del Web » Programando para Internet » PHP »

problema con columnas repetidas

Estas en el tema de problema con columnas repetidas en el foro de PHP en Foros del Web. Hola a todos, tengo este problema: estoy haciendo un SELECT desde diferentes tablas sql e inserto los datos en una tabla html creada. Hasta que ...
  #1 (permalink)  
Antiguo 19/04/2011, 19:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
problema con columnas repetidas

Hola a todos, tengo este problema:

estoy haciendo un SELECT desde diferentes tablas sql e inserto los datos en una tabla html creada. Hasta que inserto los primeros datos todo bien.
Ej:

$sql="SELECT g_nombre,m_nombre FROM grupos,materias WHERE g_nombre IN('SEXTO A') AND m_nombre IN('MATEMATICAS') ORDER BY g_nombre DESC";

Pero cuando añado otros datos...

$sql="SELECT g_nombre,m_nombre,num FROM grupos,materias,horas WHERE g_nombre IN('SEXTO A','SEPTIMO A') AND m_nombre IN('MATEMATICAS','CONTABILIDAD') AND num IN('4','2') ORDER BY g_nombre DESC";

El risultado es:


MI GRUPO
GRUPO MATERIAS HORAS

SEXTO A CONTABILIDAD 4
SEXTO A MATEMATICAS 2
SEXTO A MATEMATICAS 4
SEXTO A CONTABILIDAD 2
SEPTIMO A CONTABILIDAD 2
SEPTIMO A CONTABILIDAD 4
SEPTIMO A MATEMATICAS 2
SEPTIMO A MATEMATICAS 4

En teoría serìa:

MI GRUPO
GRUPO MATERIAS HORAS

SEXTO A CONTABILIDAD 4
SEPTIMO A CONTABILIDAD 2


Aquì hay el codigo completo:

<html>
<body>
<?php include ("../conexion.php");
/* Realizamos la consulta SQL */
$sql="SELECT g_nombre,m_nombre,num FROM grupos,materias,horas WHERE g_nombre IN('SEXTO A','SEPTIMO A') AND m_nombre IN('MATEMATICAS','CONTABILIDAD') AND num IN('4','2') ORDER BY g_nombre DESC";

$result= mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result)==0) die("No hay registros para mostrar");

/* Desplegamos cada uno de los registros dentro de una tabla */
echo "<table border=1 cellpadding=4 cellspacing=0>";

/*Priemro los encabezados*/
echo "<tr>
<th colspan=5> MI GRUPO </th>
<tr>
<th> GRUPO </th> <th> MATERIAS </th> <th> HORAS </th>
</tr>";

/*Y ahora todos los registros */
while($row=mysql_fetch_array($result))
{
echo "<tr>
<td> $row[g_nombre] </td>
<td> $row[m_nombre] </td>
<td> $row[num] </td>
</tr>";
}
echo "</table>";

?>
</body>
</html>


Alguien puede ayudarme?
Gracias de antemano
  #2 (permalink)  
Antiguo 19/04/2011, 21:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con columnas repetidas

Todos los resultados son correctos, porque cada registro coincide en que:

g_nombre es SEXTO A o SEPTIMO A
m_nombre es MATEMATICAS o CONTABILIDAD
num es 2 o 4

Tal vez funcione asi:
WHERE (g_nombre = 'SEXTO A' AND m_nombre = 'CONTABILIDAD' AND num = 4)
OR (g_nombre = 'SEPTIMO A' AND m_nombre = 'MATEMATICAS' AND num = 2)
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/04/2011, 21:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: problema con columnas repetidas

Gracias Triby, como siempre sacándome de apuros...

con tu script logré a obtener:


MI GRUPO
GRUPO MATERIAS HORAS

SEXTO A CONTABILIDAD 4
SEPTIMO A MATEMATICAS 2

Lo que necesito es obtener:

MI GRUPO
GRUPO MATERIAS HORAS

SEXTO A CONTABILIDAD 2
SEXTO A MATEMATICAS 4
SEPTIMO A CONTABILIDAD 2
SEPTIMO A MATEMATICAS 4

Casi estamos llegando....

Muchas gracias de toda forma
  #4 (permalink)  
Antiguo 19/04/2011, 21:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con columnas repetidas

Bueno, la teoria: grupo in (sexto a, septimo a) and ((contabilidad y 2) or (matematicas y 4))
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 19/04/2011, 21:34
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: problema con columnas repetidas

Resuelto......

Eres muy bueno en esto...

Gracias otra vez

Etiquetas: columnas
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 18:47.