Foros del Web » Programando para Internet » PHP »

SELECT para insertar a tabla temporal

Estas en el tema de SELECT para insertar a tabla temporal en el foro de PHP en Foros del Web. Holita Tengo una tabla con nombres de alumnos y puntajes válidos (por encima de 0) e inválidos (iguales a 0)... quiero un reporte diario de ...
  #1 (permalink)  
Antiguo 16/11/2005, 22:17
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
SELECT para insertar a tabla temporal

Holita

Tengo una tabla con nombres de alumnos y puntajes válidos (por encima de 0) e inválidos (iguales a 0)... quiero un reporte diario de la actividad por rango de fechas pero... NO LO LOGRO entonces pensé en hacer los distintos SELECT con puntos = 0, >0 y totales por fecha e ir insertando a una tabla temporal que luego puedo listar directamente por pantalla.
Tengo:
Código PHP:
//segunda consulta
$sql="SELECT DISTINCT name AS NAME,
     COUNT(point) AS NULLPOINT
     FROM tabla
     WHERE point=0
     AND time_date >= '$form_date1'
     AND time_date <= '$form_date2'
     GROUP BY name"
;
     
$result mysql_query($sql$con) or die("Wrong Access1: ".mysql_error);
if (
$rowmysql_fetch_array($result))
{
$name=$row["NAME"];
$nullpoint=$row["NULLPOINT"];
DO
 {
mysql_query("INSERT INTO report_temp (id, name, valid, invalid, total) VALUES ('', '$name', '', '$nullpoint', '')");

   WHILE (
$row=mysql_fetch_array($result));
 }
}
?> 
Pues... sólo me inserta el último registro encontrado.
Qué estoy haciendo mal por favor ???
Gracias, gracias, gracias
  #2 (permalink)  
Antiguo 16/11/2005, 22:37
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Hola Suyta!

Estuve analizando tu código, y vi al parecer el error que estas cometiendo, cuando haces la consulta para obtener los resultados de tu bases de datos, almacenas en la variable $name y $nullpoint los valores al cumplirse la condición, después haces uso del bucle do while, ahí es donde esta el error, porque se estan insertando los mismo valores de la variable $name y $nullpoint en cada iteración del bucle, en ningún momento reasignas los nuevos valores de esas variables dentro de DO.

Suerte!
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 16/11/2005, 23:13
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Ah tienes razón jahepi
Quedaría así ?
Código PHP:
DO 

$member=$row["USERNAME"];
$bidnull=$row["BIDNULL"];
mysql_query("INSERT INTO report_temp (id, name, valid, invalid, total) VALUES ('', '$name', '', '$nullpoint', '')"); 

   WHILE (
$row=mysql_fetch_array($result)); 

Si le pido un 'echo' veo todo ok pero sigue insertando en la tabla sólo el último registro
Cariños y gracias ! Si se te ocurre algo pega el grito

Estoy editando:
ya está... tenía mal la estructura de la tabla... con la corrección que me indicaste jahepi funciona perfectamente.
Saludos y gracias de nuevo :)

Última edición por Suyta; 17/11/2005 a las 01:08
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 09:28.