Bueno al final lo que hice fue sacar el WHILE.
Ahora me funciona bien con este algoritmo:
Código PHP:
if($_GET['productor'] && $_GET['especie'] && $_GET['variedad'] && $_GET['etapa'] && $_GET['calibre']){
$productor = $_GET['productor'];
$especie = $_GET['especie'];
$variedad = $_GET['variedad'];
$etapa = $_GET['etapa'];
$calibre = $_GET['calibre'];
$consultarCalibre = mysql_query("SELECT id_calibre FROM `criterio_calibres` WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8) = '$especie' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` = $calibre LIMIT 1", $dbCon)or die(mysql_error());
$rowCalibre = mysql_fetch_array($consultarCalibre);
if(!$rowCalibre['id_calibre']){
$valor_porcentual = 0;
mysql_query("INSERT INTO criterio_calibres(id_especie, id_productor, id_variedad, etapa, id_calibre, valor_porcentual) VALUES ('$especie', '$productor', '$variedad', $etapa, $calibre, $valor_porcentual)", $dbCon)or die(mysql_error());
}
if($rowCalibre['id_calibre'] == $calibre){
mysql_query("DELETE FROM `criterio_calibres` WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8) = '$especie' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` = $calibre LIMIT 1", $dbCon)or die(mysql_error());
}
}
Saludos!!