bueno mi problema es que misteriosamente a veecs inserta dos veces seguidas... no siempre... es lo raro... a veces... y cada ves que quiero hacer print del query ninga falla pero lo saco y a veces falla.. inserta dos veces el msimo registro claro con diferente codigo o a veces con el mismo codigo y genera error y solo inserta el primero.... espero me ayuden gracias
los codigos son:
la clase DAO:
Código PHP:
require_once("Query.class.php");
class HistorialDAO{
function HistorialDAO(){
}
function select($tipo=""){
if( $tipo=="conta" ){ $sql = "select codHis from hi01"; }
$resultado = new Query($sql);
return $resultado->result;
}
function update($h){
$sql = "UPDATE hi01 SET ";
$sql = $sql."fecha='".$h->fecha."', ";
$sql = $sql."hora='".$h->hora."', ";
$sql = $sql."estado='".$h->estado."', ";
$sql = $sql."comentario='".$h->comentario."', ";
$longitud = strlen($sql);
$sql = substr($sql,0,$longitud-2);
$sql = $sql." WHERE codHis='".$h->codHis."'";
$resultado = new Query($sql);
return $resultado->mensaje;
}
function insert($h){
$sql = "INSERT INTO hi01 (codHis,cliente,fecha,hora,estado,comentario) VALUES (";
$sql = $sql."'".$h->codHis."',";
$sql = $sql."'".$h->cliente."',";
$sql = $sql."'".$h->fecha."',";
$sql = $sql."'".$h->hora."',";
$sql = $sql."'".$h->estado."',";
$sql = $sql."'".$h->comentario."')";
$resultado = new Query($sql);
return $resultado->mensaje;
//return $sql;
}
function delete($h){
$sql = "DELETE FROM hi01 WHERE ";
$sql = $sql."codHis='".$h->codHis."'";
$resultado = new Query($sql);
return $resultado->mensaje;
}
function search($h){
$sql = "select * from hi01 where ";
if($h->codHis!=""){
$sql = $sql."codHis='".$h->codHis."' AND ";
}
$longitud = strlen($sql);
$sql = substr($sql,0,$longitud-4);
$sql = $sql." ORDER BY fecha, hora";
$resultado = new Query($sql);
return $resultado->result;
}
}
Código PHP:
require_once "clases/HistorialDAO.class.php";
require_once "clases/Historial.class.php";
$codigos = HistorialDAO::select("conta");
$ref=0;
$arrFaltan = array();
while($row=mysql_fetch_row($codigos)){
$num=1*substr($row[0],3,9);
$prueba = $num-1;
if( $prueba>$ref ){ $arrFaltan[] = $prueba; break; }
$ref=$num;
}
$resul = count($arrFaltan);
print "<br>";
print "<center><strong>Resultado de La Grabacion</strong></center>";
print "<br><br>";
if( $resul==0 ){ $newCod = "".$ref+1; }else{ $newCod = "".$arrFaltan[0]; }
$ceros = "0000000";
$resta = strlen($newCod);
$ceros = substr($ceros,0,7-$resta);
$nuevoCod = "his".$ceros.$newCod;
$h = new Historial();
$h->codHis = $nuevoCod;
$h->cliente = $_POST["codcli"];
$h->fecha = $_POST["fecha"];
$h->hora = $_POST["hora"];
$h->estado = $_POST["estadoForm"];
$h->comentario = $_POST["comentForm"];
$mensaje = HistorialDAO::insert($h);
print $mensaje;
print "<html><head></head>";
print "<body onunload=\"javascript:window.opener.document.getElementById('frameHis').src='cliente_view_detalle.php?num=".rand(0, 20000)."&codigo=".$_POST["codcli"]."'\">";
$form1 = "<br><br><center><strong>";
$form2 = "</strong></center>";
if($mensaje!=""){
print $form1.$mensaje.$form2;
print "<input type='button' value='ver menu' onClick=\"javascript:window.location='menu.php';\">";
}else{
print $form1."Se grabo satisfactoriamente el Historial para el cliente: ".$_POST["nomcli"].", con codigo: ".$nuevoCod.$form2;
print "Desea Salir ? ";
print "<input type='button' value='Close' onClick=\"javascript:window.close();\">";
print "<br>O prefiere ingresar otro Historial ? ";
print "<input type='button' value='New Add' onClick=\"javascript:window.location='cliente_add_history.php?codigo=".$_POST["codcli"]."&nombre=".$_POST["nomcli"]."';\">";
}
print "</body></html>";