Lamentablemente tengo un problemilla que hecho que me rompa el craneo pensando y no logro encontrar la solución.
No se si a alguien le ha pasado.
Lo que intento hacer es simplemente una consulta preguntando si existe un registro antes de insertarlo.
Consiste en preguntar con sql si existe algun registro en que coincida un nº de orden de servicio y el código del cliente.
si el mysql_num_rows me arroja 0 es por que no existe y procedo a insertar y luego cierro las conexiones, si no existe simplemente cierro las conexiones.
Es una funcion. y aqui está el código:
Código PHP:
function AgregarOrdenServicio($Variables)
{
$valores = explode(",",$Variables);
echo "<span class='TextoNormal'>-> Recibiendo valores.</span><br>";
$valores[0]=GetSQLValueString($valores[0], "int");
$valores[1]=GetSQLValueString($valores[1], "text");
$valores[2]=GetSQLValueString($valores[2], "text");
$valores[3]=GetSQLValueString($valores[3], "int");
$valores[4]=GetSQLValueString(fecha($valores[4]), "date");
$valores[5]=GetSQLValueString(fecha($valores[5]), "date");
$valores[6]=GetSQLValueString($valores[6], "text");
$valores[7]=GetSQLValueString($valores[7], "text");
$valores[8]=GetSQLValueString($valores[8], "text");
$valores[9]=GetSQLValueString($valores[9], "int");
echo "<span class='TextoNormal'>-> Verificando si ya existe este nº de Orden de servicio para este Cliente...</span><br>";
$existe = "SELECT * FROM ordenes_de_servicios WHERE ordserv_cli_cod = $valores[3] and ordserv_num = $valores[1];";
$lnk = Conectar();
$consulta = mysql_query($existe,$lnk);
if (mysql_num_rows($consulta) == 0)
{
echo "<span class='TextoNormal'>-> No registrado.</span><br>";
mysql_free_result($consulta);
$insercion = mysql_query("INSERT INTO ordenes_de_servicios (ordserv_cod, ordserv_num, ordserv_estado, ordserv_cli_cod, ordserv_femi, ordserv_frecep, ordserv_pqtnom, ordserv_pqtrut, ordserv_pqtfono, ordserv_usu_cod) VALUES ($valores[0],$valores[1],$valores[2],$valores[3],$valores[4],$valores[5],$valores[6],$valores[7],$valores[8],$valores[9]);",$lnk);
mysql_close($lnk);
return true;
}
else
{
echo "<span class='TextoNormal'>-> Registrado.</span><br>";
mysql_free_result($consulta);
mysql_close($lnk);
return false;
}
}
He probado....y eliminando esta línea de código funciona a la perfección, indica cuando existe el registro y cuando no:
Código PHP:
$insercion = mysql_query("INSERT INTO ordenes_de_servicios (ordserv_cod, ordserv_num, ordserv_estado, ordserv_cli_cod, ordserv_femi, ordserv_frecep, ordserv_pqtnom, ordserv_pqtrut, ordserv_pqtfono, ordserv_usu_cod) VALUES ($valores[0],$valores[1],$valores[2],$valores[3],$valores[4],$valores[5],$valores[6],$valores[7],$valores[8],$valores[9]);",$lnk2);
al colocarla nuevamente vuelve a fallar la comprobación...me arroja que existe, (cuando en realidad no existe) y a demás inserta el registro...
Realmente estoy PLOP!
Si pueden ayudar les agradecería mucho.
Saludos