ya know I've often wondered the point in your signature...
How though is simple even a moron can do it, but I'll try and go slow for you.
First thing to remember PK3 is Quake3 Package. This means YOU CAN ONLY USE QUAKE3 BASED BSP MAPS IN IT.
i.e. Soldier of Fortune 1/2, Quake 3, Elite Forces 1/2, Alice, Jedi Knight 2, etc.
Personally I'd beyond strongly suggest bog standard Quake 3, but everyone thinks they know better than someone who's been making BSP maps for over a decade so it pretty much is a given you'll ignore that comment and try to pack a Half-Life map into the PK3. Have fun trying to get that to work.
Next thing to do is make sure the textures you use are in the exact folders you want them in. Remember Quake 3's Directory Structure is
[Base]\Maps\.. *.BSP *.AAS (BSP and Collision Maps)
[Base]\Script\.. *.Shader (Texture Shader Script)
[Base]\Models\Object\.. *.MD3 (Map Objects)
[Base]\Textures\.. *.Jpg *.Tga (Texture Files)
Now the exception to all of these is your BSP *MUST* be moved to the [Base]\ Folder.. but the rest stay where they ARE. Don't worry BSP work from the relative base directory anyways.
Now you'll probably need to make the Level itself, I say you should use GTK Radiant. Disobey and burn in the firey pits of BlitzResearch Forums.
Now once you've compiled your BSP and I'd recommend ACTUALLY testing it in Quake 3 first, if your too cheat to buy the full thing download the demo that will also run any custom map.
To package it as a PK3, download WinZip compress everything in your [Base] Folder, but no the folder itself everything INSIDE it. Also I'd recommend only using Normal Compression. Highter compression takes forever and can cause errors. (Oh and remember to move the BSP from \Maps\ to \. After testing it
Then it should run fine in DB/P.
The amount of times I've actually explained this.. just for YOU, is kinda getting beyond a joke. I mean are you sure you even know how to make BSP?