Código PHP:
<?php
if (isset($_POST['usuario']) and ($_POST['password']) and ($_POST['nombre']) and ($_POST['apellidos']) and ($_POST['apodo']))
{
if ( empty($_POST['usuario']) || empty($_POST['password'])
|| empty ($_POST['nombre']) || empty($_POST['apellidos']) || empty($_POST['apodo']) )
{
echo "Error, debe de llenar todos los campos";
}
else
{
$con=pg_connect("host='127.0.0.1' port='5432' user='postgres' password='***' dbname='Curso'");
if (!$con)
{
echo "Error al conectarse a la base de datos vuelva a intentarlo mas tarde";
}
else
{
$usuario=$_POST['usuario'];
$pass=$_POST['password'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellidos'];
$nickname=$_POST['apodo'];
$sql="INSERT INTO comparacion (usuario, contrasena) VALUES '$usuario', '$pass')";
$query=pg_query($sql);
$sql1="INSERT INTO id (usuario, nombres, apellidos, nickname) VALUES ('$usuario', '$nombre', '$apellido', '$nickname')";
$query1=pg_query($sql1);
$comp="SELECT usuario FROM comparacion";
$query2=pg_query($comp);
/*31->*/If(pg_num_rows($comp)==1)
{
$row=pg_fetch_array($comp);//aqui comparo si ya existe el usuario en la BD
$usuario["$usuario"]=$row[0];
$usuario["$usuario"]=$row[1];
echo "Error, El alumno ya esta dado de alta.";
exit;
}
else
{
if (@pg_query($sql))
{
if (@pg_query($sql1))
{
echo "Alumno dado de alta con exito.";
exit;
}
}
else
{
echo "Error al dar de alta al alumno, intentelo mas tarde.";
exit;
}
}
}
}
}
?>
Warning: pg_num_rows(): supplied argument is not a valid PostgreSQL result resource in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\shinusuario.php on line 31
Error al dar de alta al alumno, intentelo mas tarde.
Pero si me da de alta al alumno con todos sus datos bien, a que se debera??
Tambien si hay campos en blanco solo me dirige a una pagina en blanco, no me muestra el error de los datos y si ya existe el usuario en vez de mostrar el error de que ya existe me manda al de intentarlo mas tarde.
De antemano gracias y espero me puedan ayudar.