我遇到了一个问题,我创建的方法是在数据库的三个不同的表中插入数据,它太慢了,并且不在循环中我需要帮助来检测问题是什么...这是我的代码
public function procesaOrdenRun () {
#trae variables de config
$data = new Config();
$base_path = $data->url();
$base_path = str_replace("/classes","",$base_path);
$fecha_creado = date("Y-m-d");
$fecha_entrega = date('Y-m-d', strtotime($fecha_creado. ' + 7 days'));
$id_paciente = $_POST["id_preregistro"];
$estado = "6";
$asignado = $_POST["dr_remitente"];
$precio = $_POST["precio_plantilla"];
$tipo_plantilla = $_POST["tipo_plantilla"];
$tipo_pie = $_POST["tipoPie"];
$observaciones = $_POST["observaciones"];
$id_usuario = $_POST["id_usuario"];
$id_plantilla = $_POST["id_plantilla"];
$consecutivo = $_POST["consecutivo"];
//$archivo_fresado = $_POST["fresado"];
//$archivo_presion = $_POST["presion"];
//die(var_dump($_FILES["fresado"]["name"]));
$archivo_fresado = "../files/".$_FILES["fresado"]["name"];
$archivo_presion = "../files/".$_FILES["presion"]["name"];
$target_dir = "../files/";
$target_file1 = $target_dir . basename($_FILES["fresado"]["name"]);
$target_file2 = $target_dir . basename($_FILES["presion"]["name"]);
if (!empty($_FILES["fresado"]["name"])){
if (move_uploaded_file($_FILES["fresado"]["tmp_name"], $target_file1)) {
//echo "El archivo ". basename($_FILES["fresado"]["name"]). " se ha subido correctamente.";
} else {
echo "Error al subir el archivo ".$target_file1;
}
}
if (!empty($_FILES["presion"]["name"])){
if (move_uploaded_file($_FILES["presion"]["tmp_name"], $target_file2)) {
//echo "El archivo ". basename($_FILES["presion"]["name"]). " se ha subido correctamente.";
} else {
echo "Error al subir el archivo ".$target_file2;
}
}
//die(var_dump($archivo_fresado));
$facturado = 0;
$db = new database();
$conn = $db->conn();
try {
$query = $conn->prepare('INSERT INTO ortomec_orden_pedido (
id_paciente,
fecha_entrega,
estado,
asignado,
precio,
tipo_plantilla,
tipo_pie,
archivo_fresado,
archivo_presion,
observacion,
id_usuario,
fecha_creado,
facturado,
id_plantilla,
consecutivo
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$query->bindParam(1, $id_paciente);
$query->bindParam(2, $fecha_entrega);
$query->bindParam(3, $estado);
$query->bindParam(4, $asignado);
$query->bindParam(5, $precio);
$query->bindParam(6, $tipo_plantilla);
$query->bindParam(7, $tipo_pie);
$query->bindParam(8, $archivo_fresado);
$query->bindParam(9, $archivo_presion);
$query->bindParam(10, $observaciones);
$query->bindParam(11, $id_usuario);
$query->bindParam(12, $fecha_creado);
$query->bindParam(13, $facturado);
$query->bindParam(14, $id_plantilla);
$query->bindParam(15, $consecutivo);
$query->execute();
//return true;
//self::updateOrder(); //se agrego para que actualice el orden de las ordenes de pedido y asi funcionen las flechas con las que se "ordenan"
$this->updateOrder(); //se agrego para que actualice el orden de las ordenes de pedido y asi funcionen las flechas con las que se "ordenan"
} catch( PDOException $e ) {
echo 'Caught exception: ', $e->getMessage(), "\n";
return false;
}
$idOrden = $conn->lastInsertId('id_orden_pedido');
/*$sql = "select max(id_orden_pedido) from ortomec_orden_pedido";
$query = $conn->prepare( $sql );
$query->execute();
$results = $query->fetchAll();
$idOrden = $results[0]["max(id_orden_pedido)"];*/
/* Actualiza aqui */
$bmi1 = $_POST["bm1Izq"];
$bmi2 = $_POST["bm2Izq"];
$bmi3 = $_POST["bm3Izq"];
$bmi4 = $_POST["bm4Izq"];
$bmi5 = $_POST["bm5Izq"];
$bmd1 = $_POST["bm6Izq"];
$bmd2 = $_POST["bm7Izq"];
$bmd3 = $_POST["bm8Izq"];
$bmd4 = $_POST["bm9Izq"];
$bmd5 = $_POST["bm10Izq"];
$derechaIzquierda = $_POST["clickEleve"];
$selectCmp = $_POST["selectCmp"];
$botonMetatarsianoIzq = $_POST["botonMetatarsiano"];
$botonMetatarsianoDer = $_POST["botonMetatarsiano2"];
$elevacionDer = $_POST["elevacionDer"];
$elevacionIzq = $_POST["elevacionIzq"];
$almohadillaEscaDer = $_POST["almohadillaEscaDer"];
$almoadillaEscaIzq = $_POST["almoadillaEscaIzq"];
$cuniaExternaDer = $_POST["cuniaExternaDer"];
$cuniaExternaIzq = $_POST["cuniaExternaIzq"];
$cuniaInternaDer = $_POST["cuniaInternaDer"];
$cuniaInternaIzq = $_POST["cuniaInternaIzq"];
try {
$query = $conn->prepare('INSERT INTO ortomec_orden_correctores (
idOrden,
bmi1,
bmi2,
bmi3,
bmi4,
bmi5,
bmd1,
bmd2,
bmd3,
bmd4,
bmd5,
selectCmp,
botonMetatarsianoIzq,
botonMetatarsianoDer,
derechaIzquierda,
elevacionDer,
elevacionIzq,
almohadillaEscaDer,
almoadillaEscaIzq,
cuniaExternaDer,
cuniaExternaIzq,
cuniaInternaDer,
cuniaInternaIzq
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$query->bindParam(1, $idOrden);
$query->bindParam(2, $bmi1);
$query->bindParam(3, $bmi2);
$query->bindParam(4, $bmi3);
$query->bindParam(5, $bmi4);
$query->bindParam(6, $bmi5);
$query->bindParam(7, $bmd1);
$query->bindParam(8, $bmd2);
$query->bindParam(9, $bmd3);
$query->bindParam(10, $bmd4);
$query->bindParam(11, $bmd5);
$query->bindParam(12, $selectCmp);
$query->bindParam(13, $botonMetatarsianoIzq);
$query->bindParam(14, $botonMetatarsianoDer);
$query->bindParam(15, $derechaIzquierda);
$query->bindParam(16, $elevacionDer);
$query->bindParam(17, $elevacionIzq);
$query->bindParam(18, $almohadillaEscaDer);
$query->bindParam(19, $almoadillaEscaIzq);
$query->bindParam(20, $cuniaExternaDer);
$query->bindParam(21, $cuniaExternaIzq);
$query->bindParam(22, $cuniaInternaDer);
$query->bindParam(23, $cuniaInternaIzq);
$query->execute();
/*var_dump($query);
die(var_dump("idOrden ".$idOrden,"bmi1 ".$bmi1,"bmi2 ".$bmi2,"bmi3 ".$bmi3,"bmi4 ".$bmi4,"bmi5 ".$bmi5,"bmd1 ".$bmd1,"bm2 ".$bmd2,"bmd3 ".$bmd3,"bmd4 ".$bmd4,"bmd5 ".$bmd5,"selectCmp ".$selectCmp,"botonMetatarsianoIzq ".$botonMetatarsianoIzq,
"botonMetatarsianoDer ".$botonMetatarsianoDer,"elevacionDer ".$elevacionDer,"elevacionIzq ".$elevacionIzq,"almohadillaEscaDer ".$almohadillaEscaDer,"almoadillaEscaIzq ".$almoadillaEscaIzq,"cuniaExternaDer ".$cuniaExternaDer,
"cuniaExternaIzq ".$cuniaExternaIzq,"cuniaInternaDer ".$cuniaInternaDer,"cuniaInternaIzq ".$cuniaInternaIzq));*/
//return true;
} catch( PDOException $e ) {
echo 'Caught exception: ', $e->getMessage(), "\n";
return false;
}
try {
$completoAlta = $_POST["completoAlta"];
$superiorMedia = $_POST["superiorMedia"];
$superiorBaja = $_POST["superiorBaja"];
$descargaTalonBaja = $_POST["descargaTalonBaja"];
$descargaTalonAlta = $_POST["descargaTalonAlta"];
$diagonalBaja = $_POST["diagonalBaja"];
$diagonalMediaSuperior = $_POST["diagonalMediaSuperior"];
$id_orden_uso = $_POST["id_orden_uso"];
$detalleUso = $_POST["detalleUso"];
$longitud_plantilla = $_POST["longitud_plantilla"];
$tipoCalzado = $_POST["tipoCalzado"];
$completoPosicion = $_POST['completo'];
$superiorArriba = $_POST['superiorMediaRa'];
$superiorAbajo = $_POST['inferiorAltaRa'];
$descargaAbajo = $_POST['descargaTalonAltaRa'];
$superiorInferiorAlta = $_POST['diagonalMediaSuperiorRa'];
$superiorInferiorBaja = $_POST['diagonalAltaRa'];
//die(var_dump($superiorInferiorAlta, $superiorInferiorBaja));
//die(var_dump($diagonalMediaSuperior, $diagonalMediaInferior, $));
$query = $conn->prepare('INSERT INTO ortomec_orden_disenio_durezas (
idOrden,
completoPosicion,
completoAlta,
completoMedia,
superiorArriba,
superiorAbajo,
superiorMedia,
superiorBaja,
inferiorMedia,
inferiorAlta,
descargaAbajo,
descargaTalonBaja,
descargaTalonAlta,
descargaTalonMedia,
superiorInferiorAlta,
superiorInferiorBaja,
diagonalBaja,
diagonalMediaSuperior,
diagonalMediaInferior,
diagonalAlta,
uso,
detalleUso,
longitud,
tipoDeCalzado
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$query->bindParam(1, $idOrden);
$query->bindParam(2, $completoPosicion);
$query->bindParam(3, $completoAlta);
$query->bindParam(4, $completoMedia);
$query->bindParam(5, $superiorArriba);
$query->bindParam(6, $superiorAbajo);
$query->bindParam(7, $superiorMedia);
$query->bindParam(8, $superiorBaja);
$query->bindParam(9, $inferiorMedia);
$query->bindParam(10, $inferiorAlta);
$query->bindParam(11, $descargaAbajo);
$query->bindParam(12, $descargaTalonBaja);
$query->bindParam(13, $descargaTalonAlta);
$query->bindParam(14, $descargaTalonMedia);
$query->bindParam(15, $superiorInferiorAlta);
$query->bindParam(16, $superiorInferiorBaja);
$query->bindParam(17, $diagonalBaja);
$query->bindParam(18, $diagonalMediaSuperior);
$query->bindParam(19, $diagonalMediaInferior);
$query->bindParam(20, $diagonalAlta);
$query->bindParam(21, $id_orden_uso);
$query->bindParam(22, $detalleUso);
$query->bindParam(23, $longitud_plantilla);
$query->bindParam(24, $tipoCalzado);
//die(var_dump($query));
$query->execute();
//return true;
} catch( PDOException $e ) {
echo 'Caught exception: ', $e->getMessage(), "\n";
return false;
}
}
这里我附上了所有表格的创建脚本:
delimiter $$
CREATE TABLE `orden_pedido` (
`id_orden_pedido` int(12) NOT NULL AUTO_INCREMENT,
`id_paciente` int(2) NOT NULL,
`fecha_entrega` date NOT NULL,
`estado` varchar(12) NOT NULL,
`asignado` int(2) NOT NULL,
`precio` double(16,2) DEFAULT NULL,
`tipo_plantilla` int(2) DEFAULT NULL,
`tipo_pie` int(11) DEFAULT NULL,
`archivo_fresado` varchar(64) DEFAULT NULL,
`archivo_presion` varchar(64) DEFAULT NULL,
`id_usuario` int(12) DEFAULT NULL,
`observacion` varchar(512) DEFAULT NULL,
`fecha_creado` date NOT NULL,
`hora_creado` time NOT NULL,
`facturado` tinyint(1) NOT NULL DEFAULT '0',
`fecha_abierta` date DEFAULT NULL,
`fecha_diseno` date DEFAULT NULL,
`fecha_produccion` date DEFAULT NULL,
`id_plantilla` int(12) DEFAULT NULL,
`orden` int(12) NOT NULL,
`fecha_modificacion` date DEFAULT NULL,
`adicional` int(11) DEFAULT '0',
`consecutivo` int(11) DEFAULT NULL,
PRIMARY KEY (`id_orden_pedido`)
) ENGINE=InnoDB AUTO_INCREMENT=388 DEFAULT CHARSET=utf8$$
delimiter $$
CREATE TABLE `orden_correctores` (
`idCorrector` int(12) NOT NULL AUTO_INCREMENT,
`idOrden` int(12) NOT NULL,
`bmi1` int(2) DEFAULT '0',
`bmi2` int(2) DEFAULT '0',
`bmi3` int(2) DEFAULT '0',
`bmi4` int(2) DEFAULT '0',
`bmi5` int(2) DEFAULT '0',
`bmd1` int(2) DEFAULT '0',
`bmd2` int(2) DEFAULT '0',
`bmd3` int(2) DEFAULT '0',
`bmd4` int(2) DEFAULT '0',
`bmd5` int(2) DEFAULT '0',
`selectCmp` varchar(255) DEFAULT '0',
`botonMetatarsianoIzq` int(2) DEFAULT '0',
`botonMetatarsianoDer` int(2) DEFAULT '0',
`derechaIzquierda` varchar(255) DEFAULT '0',
`elevacionDer` varchar(255) DEFAULT '0',
`elevacionIzq` varchar(255) DEFAULT '0',
`almohadillaEscaDer` varchar(255) DEFAULT '0',
`almoadillaEscaIzq` varchar(255) DEFAULT '0',
`cuniaExternaDer` int(2) DEFAULT '0',
`cuniaExternaIzq` int(2) DEFAULT '0',
`cuniaInternaDer` int(2) DEFAULT '0',
`cuniaInternaIzq` int(2) DEFAULT '0',
PRIMARY KEY (`idCorrector`)
) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8$$
delimiter $$
CREATE TABLE `orden_disenio_durezas` (
`idDisenioDurezas` int(12) NOT NULL AUTO_INCREMENT,
`idOrden` int(12) NOT NULL,
`completoPosicion` varchar(255) DEFAULT NULL,
`completoAlta` varchar(255) DEFAULT NULL,
`completoMedia` varchar(255) DEFAULT NULL,
`superiorArriba` varchar(255) DEFAULT NULL,
`superiorAbajo` varchar(255) DEFAULT NULL,
`superiorMedia` varchar(255) DEFAULT NULL,
`superiorBaja` varchar(255) DEFAULT NULL,
`inferiorMedia` varchar(255) DEFAULT NULL,
`inferiorAlta` varchar(255) DEFAULT NULL,
`descargaAbajo` varchar(255) DEFAULT NULL,
`descargaTalonBaja` varchar(255) DEFAULT NULL,
`descargaTalonAlta` varchar(255) DEFAULT NULL,
`descargaTalonMedia` varchar(255) DEFAULT NULL,
`superiorInferiorAlta` varchar(255) DEFAULT NULL,
`superiorInferiorBaja` varchar(255) DEFAULT NULL,
`diagonalBaja` varchar(255) DEFAULT NULL,
`diagonalMediaSuperior` varchar(255) DEFAULT NULL,
`diagonalMediaInferior` varchar(255) DEFAULT NULL,
`diagonalAlta` varchar(255) DEFAULT NULL,
`uso` varchar(255) DEFAULT NULL,
`detalleUso` varchar(255) DEFAULT NULL,
`longitud` varchar(255) DEFAULT NULL,
`tipoDeCalzado` varchar(255) DEFAULT NULL,
PRIMARY KEY (`idDisenioDurezas`)
) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8$$