Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2007, 09:57
yerenna
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema con llamada a query

Muy buenas, despues de mucho tiempo he decidido meterme en el mundo de la programación PHP estoy tratando de crear un script para registro de usuarios, que se supone que es de lo mas sencillo, y me que quedado atascada ya que me devuelve constantemente este error:

Fatal error: Call to a member function query() on a non-object on line 40

He buscado por Internet y se supone que podía ser porque estubiera trabajando con variables locales, asi que como veis en el codigo la pasé a global y sigo igual, ta,ien he revisado la versión PHP y MySQL con la que estoy trabajando y son estas:
PHP: 5.2.3
MySQL: 5.0.41
Apache: 2.0.59
Que, segun he leido no tendrían que darme problemas, pero no encuentro donde esta el error.
Espero me puedan ayudar, aqui les adjunto el codigo completo:

Código PHP:
include ('centro/funcion.php');

$connected entraDB();
if (
$connected == true) {

//Pasos de seguridad y registro con seguridad
// contra mails repetidos o login repetido.

$q2 "SELECT * FROM o_user";
$result mysql_query($q2);
$num mysql_numrows($result);
$namer 0;
$mailer 0;
for (
$i 0$i $num$i++) {
if (
strtolower(mysql_result($result,$i,"nombre")) == strtolower($_POST['nombre'])) {
$namer++;
}
for (
$o 0$o $num$o++){
if (
strtolower(mysql_result($result,$o,"email")) == strtolower($_POST['email'])){
$mailer++;
}
}
}
if (
$namer 1){
    if (
$mailer 1){
    
//Contamos el ID para que no haya 2 iguales.
    //$id = $q2->nextID('nombre');
    // El primer registro sera de clase 3
    // el resto de registros seran clase 1
    
if ($id 1) {
    
$class=1
    }
    else {
    
$class=3;
    }
    
//Insertamos datos en la tabla. 
    
global $q2
    
$q2->query('INSERT INTO o_user (id,nombre,pass,email,class) VALUES (?,?,?,?,?)',
        array(
'',$_POST['nombre'], md5($_POST['pass']), $_POST['email'],$class));     
    
mysql_query($query) or die("This account already exists.");
    
setcookie("va_reg",$_POST['user'],time()+86400);
    echo 
"Register Success";
    }
    else
    {
    echo 
"This e-mail already exists";
    }
}
else
{
echo 
"This username already exists";
}

//Fin del IF pricipal de conexión.
}
else
{
echo 
"Database Could not Connect...";
}
include (
'centro/funcion.php');

$connected entraDB();
if (
$connected == true) {

//Pasos de seguridad y registro con seguridad
// contra mails repetidos o login repetido.

$q2 "SELECT * FROM o_user";
$result mysql_query($q2);
$num mysql_numrows($result);
$namer 0;
$mailer 0;
for (
$i 0$i $num$i++) {
if (
strtolower(mysql_result($result,$i,"nombre")) == strtolower($_POST['nombre'])) {
$namer++;
}
for (
$o 0$o $num$o++){
if (
strtolower(mysql_result($result,$o,"email")) == strtolower($_POST['email'])){
$mailer++;
}
}
}
if (
$namer 1){
    if (
$mailer 1){
    
// El primer registro sera de clase 3
    // el resto de registros seran clase 1
    
if ($id 1) {
    
$class=1
    }
    else {
    
$class=3;
    }
    
//Insertamos datos en la tabla. 
    
global $q2
    
$q2->query('INSERT INTO o_user (id,nombre,pass,email,class) VALUES (?,?,?,?,?)',
        array(
'',$_POST['nombre'], md5($_POST['pass']), $_POST['email'],$class));     
    
mysql_query($query) or die("This account already exists.");
    
setcookie("va_reg",$_POST['user'],time()+86400);
    echo 
"Register Success";
    }
    else
    {
    echo 
"This e-mail already exists";
    }
}
else
{
echo 
"This username already exists";
}

//Fin del IF pricipal de conexión.
}
else
{
echo 
"Database Could not Connect...";

¿Puede ser que no este tratando bien el tema del id? en la bd esta como int 15 con autoincrement por eso dejo el dato en blanco ya que se supone que lo rellena la DB solo ¿no?

Última edición por yerenna; 25/11/2007 a las 09:59 Razón: Me deje una pregunta pendiente