Tengo una sencilla función la cual al hacer un "echo" de los registros me los muestra correctamente, pero es curioso pues al realizar un insert dentro de la función, me los guarda duplicados en la tabla.
¿A qué se puede deber?
La función es esta:
Código PHP:
function f_autoriza($codigo_autor, $tabla_asociada, $descripcion){
$sql3 = "select codsocio from t_socio";
$rs_socio = @mysql_query($sql3);
if (@mysql_num_rows($rs_socio) != 0){
$fecha_anyo = date('Y');
while ($row = @mysql_fetch_array($rs_socio)){
//Compruebo si el registro seleccionado es distinto del usuario activo
if ($row['codsocio'] != $_SESSION['codigosocio']){
//Genero el código de autorización para el resto de socios
$micod = genera_codigo(AUTORIZA_SOCIO, $fecha_anyo, LONGNUM);
$sql4 = "insert into t_autorizacion_socio (clave, fuente, aut, codsoc, ";
$sql4 = $sql4."fch, vald, motv, autzd) ";
$sql4 = $sql4."values ('$micod', '$codsoc', '$cod_aut', ";
$sql4 = $sql4."'$row[cods]', '', 'AAA', ";
$sql4 = $sql4."'', 'BBB')";
@mysql_query($sql4);
}
}
$valor = 'V';
}else{
$valor = 'F';
}
@mysql_free_result($rs_socio); //Libero recursos
return $valor;
}
Código PHP:
function genera_codigo($codhdr, $codan, $maxlg){
$codnum = substr(microtime(), 2, $maxlg);
$micodigo = $codhdr.$codan.$codnum; //Formo el valor a retornar
return $micodigo;
Agradezco sinceramente de antemano su ayuda. Gracias.