Foros del Web » Programando para Internet » PHP »

Error sin poder solucionar, insertando datos

Estas en el tema de Error sin poder solucionar, insertando datos en el foro de PHP en Foros del Web. Hola buenas estoy como loco con un error que me sale y la verdad no se que es lo que esto haciendo mal, necesito su ...
  #1 (permalink)  
Antiguo 26/03/2012, 17:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 1
Exclamación Error sin poder solucionar, insertando datos

Hola buenas estoy como loco con un error que me sale y la verdad no se que es lo que esto haciendo mal, necesito su ayuda por favor!
Tengo 5 tablas relacionadas, mi intension es insertar datos primero a las tablas que tengan solo PK y luego insertar datos a las tablas que tengan FK apuntando a esas PK. ahora todo va bien hasta que tengo que insertar a la tabla que tiene 4 FK y siempre me sale el error: "Fatal error: Call to a member function query() on a non-object in FILE on line 162" ya trate de varias maneras y no hay caso. Mi codigo, resuminedo un poco (solo lo importante) es este:
Código PHP:
$db = new mysqli('localhost''usu''contra''escri');
$query_esc="insert into escritura (nombre, numero, fecha, protocolo, redactado, imprimio, firmo, inscripto, fecha_ins, contrasena) values ('".$escritura."', '".$numero."', '".$fecha_esc."', '".$protocolo."', '".$redactado."', '".$imprimio."', '".$firmo."', '".$inscripto."', '".$fecha_ins."', '".$contrasena."')";
$query_tipo "select id from tipo_cert where tipo = '".$tipo."'";
$result_tipo $db->query($query_tipo);
while (
$row $result_tipo->fetch_assoc()) { 
$query_cer "insert into certificado (tipo_cert_id, fecha, entrada, fecha_salida) values ('".$result_tipo."', '".$cer_fecha."', '".$cer_num."', '".$cer_fechasa."')";
}
$result_ven $db->query($query_ven);
$result_com $db->query($query_com);
$result_esc $db->query($query_esc);
if (
$result $mysqli->query($query_cer))  /*aqui donde tira el error*/{
    while (
$row_cer $result->fetch_assoc()) { 
        
$result_cer $db->query($query_cer);
    }
}

$result_ven "select id from vendedor where cinruc = '".$imp_cinruc."'";
$result_ven $db->query($result_ven);
$result_com "select id from comprador where cinruc = '".$comimp_cinruc."'";
$result_com $db->query($result_com);
$result_esc "select id from escritura where numero = '".$numero."'";
$result_esc $db->query($result_esc);
$result_cer "select id from certificado where entrada = '".$cer_num."'";
$result_cer $db->query($result_cer);
if (isset(
$_POST['protocolizacion']))
{
    
$protocolizacion 1;
}else{
    
$protocolizacion 0;
}
if (isset(
$_POST['usado']))
{
    
$usado 1;
}else{
    
$usado 0;
}
if (
$habilitacion=='si')
{
    
$habilitacion 1;
}else{
    
$habilitacion 0;
}
if (
$cumpli=='si')
{
    
$cumpli 1;
}else{
    
$cumpli 0;
}
$query_ent "insert into entrada (protocolizacion, usado, observacion, hab_patente, cump_tribu) values ('".$protocolizacion."', '".$usado."', '".$observacion."', '".$habilitacion."', '".$cumpli."')";
$result_ent $db->query($query_ent); 
Por favor muchachos hace 2 semanas que estoy en esa misma linea y lo logro hacer que funcione, necesito que me ayuden uds que seguro tienen mas experiencia,
desde ya muchisimas gracias!!!
  #2 (permalink)  
Antiguo 26/03/2012, 18:20
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Error sin poder solucionar, insertando datos


<saludos>
Pues eso es porque estas usando una variable que no existe, cambia la línea por esta
Código php:
Ver original
  1. if ($result = $db->query($query_cer))

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 26/03/2012, 18:31
 
Fecha de Ingreso: octubre-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 1
Respuesta: Error sin poder solucionar, insertando datos

Hola mortiprogramador, primero que nada gracias por responder...

Acabo de cambiar la linea por la que me pasaste y ahora me tira dos errores:

Cita:
Notice: Undefined variable: query_cer in FILE on line 162

Warning: mysqli::query() [mysqli.query]: Empty query in FILE on line 162
y la linea 162 es la que me pasaste...
  #4 (permalink)  
Antiguo 26/03/2012, 18:36
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Error sin poder solucionar, insertando datos


<saludos>
Hola, de nada.
Bueno, ahora el error es otro y es que al parecer la variable
$query_cer esta vacía, es decir, el ciclo while no esta dandole
valor a dicha variable, y es por eso que ahora tienes ese mensaje.
Intenta poner un select simple por defecto a esa variable antes del while
y debe funcionar.
Sin embargo obviamente esto puede darte otras novedades, en cuyo caso
te sugiero revises el tema del while, y otra cosa, dentro del mismo while
deberías ejecutar la consulta, pues como tienes tu código al salir del while
el valor de dicha variable solo sería el insert más reciente y no todos los que
me imagino quieres hacer.
Otra solución sería concatenar cada insert en la misma variable, separarlo por punto y coma y ya ahora si que salga del while insertara tantos registros como haya generado el while.
Espero te sirva.
</saludos>

Cita:
Iniciado por legin Ver Mensaje
Hola mortiprogramador, primero que nada gracias por responder...

Acabo de cambiar la linea por la que me pasaste y ahora me tira dos errores:



y la linea 162 es la que me pasaste...
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 26/03/2012, 18:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 1
Respuesta: Error sin poder solucionar, insertando datos

Hice lo del select y me tira el mismo error.
Código PHP:
$query_tipo "select id from tipo_cert where tipo = '".$tipo."'";
$result_tipo $db->query($query_tipo);
while (
$row $result_tipo->fetch_assoc()) { 
$query_cer "select * from certificado where id = 5";
/*"insert into certificado (tipo_cert_id, fecha, entrada, fecha_salida) values ('".$result_tipo."', '".$cer_fecha."', '".$cer_num."', '".$cer_fechasa."')";*/
}

/* *******INICIO QUERY PARA LA TABLA entrada******* */
$result_ven $db->query($query_ven);
$result_com $db->query($query_com);
$result_esc $db->query($query_esc);
if (
$result $db->query($query_cer))  /*aqui donde tira el error*/
{
    while (
$row_cer $result->fetch_assoc()) { 
        
$result_cer $db->query($query_cer);
    }

Cita:
Notice: Undefined variable: query_cer in D:\xampp\htdocs\escribania\insertar.php on line 163

Warning: mysqli::query() [mysqli.query]: Empty query in D:\xampp\htdocs\escribania\insertar.php on line 163
  #6 (permalink)  
Antiguo 26/03/2012, 18:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Error sin poder solucionar, insertando datos

Te estoy diciendo que NO esta entrando al WHILE!!!!
Por eso te dije
Cita:
Intenta poner un select simple por defecto a esa variable antes del while
Cita:
Iniciado por legin Ver Mensaje
Hice lo del select y me tira el mismo error.
Código PHP:
$query_tipo "select id from tipo_cert where tipo = '".$tipo."'";
$result_tipo $db->query($query_tipo);
while (
$row $result_tipo->fetch_assoc()) { 
$query_cer "select * from certificado where id = 5";
/*"insert into certificado (tipo_cert_id, fecha, entrada, fecha_salida) values ('".$result_tipo."', '".$cer_fecha."', '".$cer_num."', '".$cer_fechasa."')";*/
}

/* *******INICIO QUERY PARA LA TABLA entrada******* */
$result_ven $db->query($query_ven);
$result_com $db->query($query_com);
$result_esc $db->query($query_esc);
if (
$result $db->query($query_cer))  /*aqui donde tira el error*/
{
    while (
$row_cer $result->fetch_assoc()) { 
        
$result_cer $db->query($query_cer);
    }

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 26/03/2012, 19:53
 
Fecha de Ingreso: octubre-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 1
Respuesta: Error sin poder solucionar, insertando datos

Perdon que te vuelva a molestar... Hice unos cambios y llegando casi al final del archivo me tira un error:

Cita:
Fatal error: Call to a member function fetch_assoc() on a non-object in FILE on line 213
la linea es:
Código PHP:
$result_ent $result_ent->fetch_assoc(); 
y antes de esto tengo:
Código PHP:
$query_ent "insert into entrada (comprador_id, vendedor_id, escritura_id, certificado_tipo_cert_id, certificado_id, protocolizacion, usado, observacion, hab_patente, cump_tribu) values ('".$result_com."', '".$result_ven."', '".$result_esc."', '".$row_certi."', '".$result_cer."', '".$protocolizacion."', '".$usado."', '".$observacion."', '".$habilitacion."', '".$cumpli."')";
$result_ent $db->query($query_ent); 
No entiendo a verdad que es lo que estoy haciendo mal, gracias por tu ayuda!
  #8 (permalink)  
Antiguo 26/03/2012, 20:17
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Error sin poder solucionar, insertando datos


<saludos>
Pues creo que el error sigue siendo el mismo, es decir,
quieres usar variables que no tienes aún con valor, para este caso,
estas asignando a una variable lo que tiene ella misma, pero a su vez
ella antes no tiene nada, y por eso es que te aparece el mensaje.

Cambia esta línea por esta

Código php:
Ver original
  1. $result_ent = $db->fetch_assoc();


Esto porque todo lo que tiene que ver con uso de la base de datos
se realiza con la variable $db, y no con otras.

</saludos>


Cita:
Iniciado por legin Ver Mensaje
Perdon que te vuelva a molestar... Hice unos cambios y llegando casi al final del archivo me tira un error:



la linea es:
Código PHP:
$result_ent $result_ent->fetch_assoc(); 
y antes de esto tengo:
Código PHP:
$query_ent "insert into entrada (comprador_id, vendedor_id, escritura_id, certificado_tipo_cert_id, certificado_id, protocolizacion, usado, observacion, hab_patente, cump_tribu) values ('".$result_com."', '".$result_ven."', '".$result_esc."', '".$row_certi."', '".$result_cer."', '".$protocolizacion."', '".$usado."', '".$observacion."', '".$habilitacion."', '".$cumpli."')";
$result_ent $db->query($query_ent); 
No entiendo a verdad que es lo que estoy haciendo mal, gracias por tu ayuda!
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: mysql, poder, solucionar, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.