Salve sto avendo un problema con un script che mi duplica un record nella tabella del database mysql.

L'unica cosa che cambia nella duplicazione è il campo ID che deve essere diverso e me lo ricavo da una piccola funzione:

Codice PHP:
require_once("../include/db.php"); // pagina di collegamento database
function id(){
    
$id="";
    
    for(
$x=1;$x==10;$x++){
        
$id.=rand(0,9);
    }
    
    if(!
$QueryVer=mysql_query("SELECT ID FROM magazine WHERE ID='$id'")){
        return 
"error";
    }else{
        if(
mysql_num_rows($QueryVer)>1){
            
id();
        }else{
            return 
$id;
        }
    }
    
}

$codeproduct=trim($_GET["cp"]); // dato ricavato da link

$id=id();

if(
$id!="error"){
    
$sql="INSERT INTO magazine (ID,CodeProduct,Description_IT,Specifications_IT,Price,VAT, Stock) ";
    
$sql.="SELECT '$id',CodeProduct,Description_IT,Specifications_IT,Price,VAT,Stock FROM magazine WHERE ID='$codeproduct'";
    if(!
mysql_query($sql)){
        echo 
"error";
    }else{
        require_once(
"home.php");
    }
}else{
    echo 
"error";

il problema è che non fa nulla, se provo a stampare a video il risultato della funzione (echo $id) non da nulla anche qui.