Foros del Web » Programando para Internet » PHP »

consulta avanzada mysql y php

Estas en el tema de consulta avanzada mysql y php en el foro de PHP en Foros del Web. Hola pues aqui de nuevo con este problemilla tengo esta consulta SELECT (SELECT sum(p.num1) FROM c1 WHERE p.nom = "CURSO1" AND puertos.nomin = 'U1' AND ...
  #1 (permalink)  
Antiguo 15/10/2013, 17:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años
Puntos: 0
consulta avanzada mysql y php

Hola pues aqui de nuevo con este problemilla

tengo esta consulta


SELECT

(SELECT sum(p.num1) FROM c1
WHERE p.nom = "CURSO1"
AND puertos.nomin = 'U1'
AND (p.certificacion BETWEEN '2013-01-01' AND '2013-03-31')) AS T1,

(SELECT sum(p.num1) FROM c1
WHERE p.nom = "CURSO1"
AND p.nomin = 'U2'
AND (p.certificacion BETWEEN '2013-01-01' AND '2013-03-31')) AS T2

y si esta bn, me manda estos resultados


T1 T1
24 7


pero ahora quiero usar por separado estos valores es decir quiero usar U1 en una tabla y U2 en otra tabla y hasta en diferentes interfaces como lo puedo hacer
  #2 (permalink)  
Antiguo 15/10/2013, 18:21
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: consulta anvanzada mysql y php

Podrias ezplicarte mejor?
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 15/10/2013, 19:17
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años
Puntos: 0
Respuesta: consulta anvanzada mysql y php

SI, necesito usar los valores de T1 y T2 que me da la consulta.

necesito poner esos valores en partes diferentes, es decir, tengo una tabla (html) pero necesito poner esos valores y¿en diferentes celdas
  #4 (permalink)  
Antiguo 15/10/2013, 20:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta avanzada mysql y php

Lo estás complicando en exceso la consulta:

Código PHP:
$query "SELECT ";
$query .= "    SUM(IF(nomin = 'U1', num1, 0)) T1, ";
$query .= "    SUM(IF(nomin = 'U2', num1, 0)) T2 ";
$query .= "FROM puertos ";
$query .= "WHERE nom = 'CURSO1'";
$query .= "    AND nomin IN('U1', 'U2')";
$query .= "    AND p.certificacion BETWEEN '2013-01-01' AND '2013-03-31'"
Luego, el como repartes esos datos, dependerá de a qué tablas te refieras, pero no es demasiado complicado, si te pones a leer las FAQs: Distribuir los resultado de una query en columnas
Código PHP:
<?php
/// no pongo el resto de la conexion
/// Nota: Esto es con la libreria MYSQL, que es obsoleta ya. Conviene usar MYSQLI
$query "SELECT ";
$query .= "    SUM(IF(nomin = 'U1', num1, 0)) T1, ";
$query .= "    SUM(IF(nomin = 'U2', num1, 0)) T2 ";
$query .= "FROM puertos ";
$query .= "WHERE nom = 'CURSO1'";
$query .= "    AND nomin IN('U1', 'U2')";
$query .= "    AND p.certificacion BETWEEN '2013-01-01' AND '2013-03-31'"
$result mysql_query($query) or die("Error: ".mysql_error());

echo 
"<table align=center>";
 
$columnes 2# Número de columnas (variable)
 
if (($rows=mysql_num_rows($result))==0) {
  echo 
"<tr><td colspan=$columnes>No hay resultados en la BD.</td></tr> ";
} else {
  echo 
"<tr><td colspan=$columnes>$rows Resultados </td></tr>";
}
 
for (
$i=1$row mysql_fetch_row ($result); $i++) {
$resto = ($i $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {echo "<tr>";} # Si es la primera celda, abrimos <tr>
    
echo "<td>$row[1]</td>"
if (
$resto == 0) {echo "</tr>";} # Si es la última celda, cerramos </tr>
}
if (
$resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust $columnes $resto# Número de huecos necesarios
for ($j 0$j $ajust$j++) {echo "<td>&nbsp;</td>";}
echo 
"</tr>"# Cerramos la última línea </tr>
}
mysql_close($conexion);
echo 
"</table>";
?>
Nota 2: Sólo hice un Copy+Paste de la mayor parte. Te conviene revisar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/10/2013, 08:12
 
Fecha de Ingreso: marzo-2013
Mensajes: 72
Antigüedad: 11 años
Puntos: 0
Respuesta: consulta avanzada mysql y php

Uy creo que me la complicaste, pero intentare, el caso es que solo quiero usar los dos resultados T2 y T2, por que en la consulta que te mande tiene un BETWEEN '2013-01-01' AND '2013-03-31'
y estas fecha cambian BETWEEN '2013-04-01' AND '2013-06-31' y asi sucesivamente, si puedes explicarme mas detalladamente, si no grax por tu respuesta se que esto me ayudara ya que soy casi nuevo.

Etiquetas: mysql+consulta
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 16:06.