Código PHP:
$comp="SELECT usuario FROM comparacion"; // Estas leyendo solo 1 campo
// ...
//...
$usuario["$usuario"]=$row[0];
$usuario["$usuario"]=$row[1]; // Este de donde sale?
Ademas, estas ejecutando las inserciones antes de la verificacion:
Código PHP:
$comp="SELECT usuario FROM comparacion"; // Aqui deberias poner un WHERE usuario = '$usuario'
$compara=pg_query($comp);
// Aqui revisas si el usuario existe
if(pg_num_rows($compara) > 0)
die('El usuario ya existe');
$sql="INSERT INTO comparacion (usuario, contrasena) VALUES '$usuario', '$pass')";
$query=pg_query($sql); // Esto inserta en comparacion
$sql1="INSERT INTO id (usuario, nombres, apellidos, nickname) VALUES ('$usuario', '$nombre', '$apellido', '$nickname')";
$query1=pg_query($sql1); // Esto inserta en id (asi se llama la tabla?)
echo 'Usuario dado de alta correctamente.';