Foros del Web » Programando para Internet » PHP »

Inserta doble registro ¿?

Estas en el tema de Inserta doble registro ¿? en el foro de PHP en Foros del Web. Hola Tengo un problemita, resulta que estoy generando un reporte y dicha accion la quiero guardar en una tabla. Pues el registro lo esta insertando ...
  #1 (permalink)  
Antiguo 05/09/2008, 18:33
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 9 meses
Puntos: 2
Pregunta Inserta doble registro ¿?

Hola
Tengo un problemita, resulta que estoy generando un reporte y dicha accion la quiero guardar en una tabla. Pues el registro lo esta insertando dos veces . Les dejo mi codigo completo para ver si me puedan dar alguna sugerencia.

Nota: Este mismo codigo lo pongo en otras hojas y lo hace bien, en cambio lo pongo en mis hojas de reportes y hace lo mismo
Código PHP:
<?php
//Restriccion de usuario por página
session_start();
//include ('../Include/Acciones.php');
//conectarusuario();

//Acceso por nivel
$conexion mysql_connect("localhost""root""");
mysql_select_db("CentralMedica"$conexion);

//insertar para el historial
$inserthist sprintf("INSERT INTO paciente_historialmodif (cvepaciente, cveuser, cveaccion) VALUES (1, 7, 6)");  

//*mysql_select_db("CentralMedica", $conexion);
$Result1 mysql_query($inserthist$conexion) or die(mysql_error());

$query_nivel "SELECT cvepermiso FROM catpermisos_usuarios WHERE cveempleado = $cveemp AND cvecatalogo =3 AND informes =1";
$nivel mysql_query($query_nivel$conexion) or die(mysql_error());
$tot mysql_num_rows($nivel);
if (
$tot == 0) {
header("Location: AccesoRestringido.php"); 
}

require_once(
'class.ezpdf.php');
$pdf =& new Cezpdf('letter','landscape');
$pdf->selectFont('Reportes/fonts/courier.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);

//$conexion = mysql_connect("localhost", "root", "");
//mysql_select_db("CentralMedica", $conexion);
$queEmp "select * from paciente";

$ixx 0;
while(
$datatmp mysql_fetch_assoc($resEmp)) { 
    
$ixx $ixx+1;
    
$data[] = array_merge($datatmp, array('num'=>$ixx));
}
$titles = array(
                
'fecha_reg'=>'<b>Fecha de Registro</b>',
                
'nombre'=>'<b>Nombre</b>',
                
'paterno'=>'<b>Paterno</b>',
                
'materno'=>'<b>Materno</b>',
                
'sanguineo'=>'<b>Tipo de Sangre</b>',
                
'atencion'=>'<b>Tipo de Atención</b>',
                
'estatus'=>'<b>Estatus</b>',
                
'noexpediente'=>'<b>No. Expediente</b>',
                
'aseguradora'=>'<b>Aseguradora</b>',
            );
$options = array(
                
'shadeCol'=>array(0.9,0.9,0.9),
                
'xOrientation'=>'center',
                
'width'=>700
            
);
$txttit "<b>CENTRAL MEDICA </b>\n";
$txttit.= "Reporte de Pacientes \n";
$pdf->addJpegFromFile('Logo.JPG',680,537);
$pdf->addJpegFromFile('linea.JPG',40,545);


$pdf->ezText($txttit12);
$pdf->ezTable($data$titles''$options);
$pdf->ezText("\n\n\n"10);
$pdf->ezText("<b>Total de Pacientes: </b> ".$totEmp10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n"10);
$pdf->ezText("<b>historial</b> ".$update_hist10);
$pdf->ezStream();
?>
De antemano agradezco sus comentarios

Última edición por Yedi; 06/09/2008 a las 10:11
  #2 (permalink)  
Antiguo 06/09/2008, 08:45
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Inserta doble registro ¿?

Que tal Yedi, primero que todo no veo porque te inserta dos veces el registro, es ese todo tu código? haces alguna redirección a la misma página al generar el PDF?
Bueno por partes:

1. Cambia la sentencia INSERT por esta:
Código PHP:
$inserthist = ("INSERT INTO paciente_historialmodif (cvepaciente, cveuser, cveaccion) VALUES (1, 7, 6)");  
$Result1 mysql_query($inserthist$conexion) or die(mysql_error()); 
Revisa en el manual la función sprintf(), para que analizes su correcto funcionamiento.
2. No estes enviando tu consulta a niungun cursor para que la puedas ejecutar prueba así tu código:
Código PHP:
$queEmp "select * from paciente";
$resEmp mysql_query($queEmp$conexion) or die(mysql_error() );
$ixx 0;
while(
$datatmp mysql_fetch_assoc($resEmp)) { 
    
$ixx $ixx+1;
    
$data[] = array_merge($datatmp, array('num'=>$ixx));


Saludos.
  #3 (permalink)  
Antiguo 06/09/2008, 08:55
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Inserta doble registro ¿?

Fijate en este post a ver si te sirve

http://www.forosdelweb.com/f18/porqu...-veces-620761/

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 06/09/2008, 10:51
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 9 meses
Puntos: 2
Hola gracias por sus sugerencias y probando el codigo me di cuenta de dos cosas
1. Cuando comento esta linea
Código PHP:
$resEmp mysql_query($queEmp$conexion) or die(mysql_error() ); 
que pretenece a la consulta para mostrar los datos, solo inserta el registro una vez, pero lo q no entiendo es por que entra en conflicto con ella

2. Lei el post q me recomendo the_web_saint y efectivamente, a mi tambien me funciona bien en firefox () pero en IE no, inserta doble mi registro. Asi q decidi seguir el consejo de q si recibia alguna variable q ejecutara mi consulta, pero hoo desilucion por q la sigue insertando doble.

Eso del redireccionamiento no lo estoy usando, el codigo posteado es el codigo completo

Gracias por sus comentarios

ahh se me olvido comentar q tambien revise lo del sprintf, lo probe con y sin, pero aun asi no me funciono

Última edición por GatorV; 06/09/2008 a las 11:09
  #5 (permalink)  
Antiguo 07/09/2008, 18:38
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: Inserta doble registro ¿?

Hola pues sigo con mi problema pero ahora se me ha ocurrido que aplique un unset() a la consulta que estoy haciendo, esto con el fin de q ya no me duplique mi registro. Pero no puedo aplicar un unset() a mysql_query asi q busco a alguna otra instruccion q me ayude
Alguien conoce alguna??
Gracias
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 14:41.