manu92gs   28 Aug, 2013, 12:35 am
#1
Foro: http://zonaps3.es
Version: 1.6.8

Hola a todos, despues de tanto tiempo, vengo por estos lares porque hay un error que me tiene de cabeza..
¿Cómo se importan variables globlales?

El caso es que tengo un archivo .php incluido en el index, que se refresca con ajax, la primera consulta la hace, pero la siguiente me salta el error:
Cita:Fatal error: Call to a member function query() on a non-object in..

El archivo antes de invocar las variables $db ->query(consulta), puse esto:
global $db;
Y si intento incluir el archivo global.php me da error, porque se incluye dos veces (recordemos que estamos incluyendo el archivo dentro de otro, por lo cual en teoría debería de heredar las variables globales, pero no funciona, solo hace la primera consulta, y al darle a siguiente/anterior es cuando da error de consulta).

¿Alguna idea?
Espero vuestros consejos, ya que solo se me ocurre redeclarar la variable, aunque conlleve ciertos riesgos de seguirdad, puesto que en la función de conexión a la bd está la password..
Edson Ordaz   28 Aug, 2013, 10:22 am
#2
si llamas al global debe funcionar ya que el global llama al init y el init inicia la clace db..
te ayudariamos mas poniendo tu codigo completo!
Última modificación: 28 Aug, 2013, 10:22 am por Pomelete.
Omar G.   28 Aug, 2013, 10:21 pm
#3
Quizás convertiste la variable a un no objeto?
$db = '';
Última modificación: 28 Aug, 2013, 10:21 pm por nicods_20055.

Envía un DM o MP si te interesa patrocinar alguna actualización o complemento a alguno de mis plugins.

[Imagen: signature.png]

Discord omar.gonzalez (Omar G.#6117); Telegram at @omarugc;
manu92gs   29 Aug, 2013, 6:41 pm
#4
Bueno, voy a explicar mejor el error, y como están estructurados los documentos.

recomendacion.php:


recomendacion-ajax.js:


Crecomendacion.php:



(He borrado las consultas, porque no me gusta colocarlas públicamente, pero no es problema de las consultas, ya que poniendo yo mi propia funcion $db2 (creada por mí) si funciona todo, pero quiero que sea con la predefinida por mybb, pero con esta únicamente se muestra el resultado inicial. -lo podeis ver porque en la página http://zonaps3.es en la zona recomendamos sale "prueba", si no funcionase la función correctamente, no funcionaría nunca...-).

¿Alguna solución?
Muchas gracias por su atención.

EDIT:
Acabo de "descubrir", que solo se realiza la primera consulta (Es decir la que muestra la recomendación actual).
La que tiene que mostrar la recomendación o siguiente no se realiza esa consulta sql.
Y están igual definidas, si no mirad:
//Esta es la primera consulta, y si se ejecuta. (Obtiene primera recomendación o la actual).
$Qrecomendados=$db -> query("consulta");
$Rrecomendados=$db -> fetch_array($Qrecomendados);

//Esta consulta no se ejecuta. (Que sería la anterior o la siguiente).
$Qrecomendadosm=$db -> query("consulta");
$Rrecomendadosm=$db -> fetch_array($Qrecomendadosm);

En serio, ¿What the fuck? Y si fuese problema de que no se recibe id, o no hay siguiente, no sería ningun problema porque elegiría el primero. (Igual que si no hay último...)
Última modificación: 29 Aug, 2013, 6:51 pm por manu92gs.
Omar G.   31 Aug, 2013, 7:46 pm
#5
En recomendacion.php no requires global.php
//require './global.php';

Como es AJAX, con init.php te bastara (supongo..).

Envía un DM o MP si te interesa patrocinar alguna actualización o complemento a alguno de mis plugins.

[Imagen: signature.png]

Discord omar.gonzalez (Omar G.#6117); Telegram at @omarugc;
  
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.