News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Splucion al problema member id 2559 not previously loaded by loadMemberData()

Started by Dhayzon, April 22, 2020, 05:00:21 PM

Previous topic - Next topic

Dhayzon

loadMemberContext(): member id 2559 not previously loaded by loadMemberData()



normalmente este problema comienza a aparecer cuando eliminamos a los usuarios desde la base de datos

¿cual es la situación en la que se debe aplicar esta solución?
Cuando decidimos eliminar usuarios directamente desde la base de datos ya sea usando  phpmyadmin o consola, normalmente lo hacen personas como yo que se quieren ahorrar tiempo eliminado usuarios uno a uno, en  mi caso elimine unos 5mil usuarios que tenian menos de 5 post y su conexión  fue hace mas de 1  año... (es un ejemplo)


lo que pasa es que utilizando este método los temas que son creados por esos usuarios aun mantienen su id y cuando smf intenta cruzar la información no encuentra al usuario en la tabla members,


entonces necesitamos establecer en 0  los id en las tablas messages y topics,


haremos una modificación en /Sources/Load.php


vamos a buscar :
trigger_error('loadMemberContext(): member id ' . $user . ' not previously loaded by loadMemberData()', E_USER_WARNING);


y antes pegaremos esto

1508:     $smcFunc['db_query']('', '
1509: UPDATE {db_prefix}messages
1510: SET id_member = {int:id} 
1511: WHERE id_member = {int:id_member}',
1512: array(
1513: 'id_member' =>  (int)$user, 
1514: 'id' => 0
1515: )
1516: );
1517: $smcFunc['db_query']('', '
1518: UPDATE {db_prefix}topics
1519: SET id_member_started = {int:id} 
1520: WHERE id_member_started = {int:id_member}',
1521: array(
1522: 'id_member' =>  (int)$user, 
1523: 'id' => 0
1524: )
1525: );



esto no arreglara el problema de un sape


esto hará un update cada que  el error sea disparado automaticamente  dependiendo de la cantidad de usuarios eliminados , los mensajes y la impresión de los mensajes  ...se arreglara


-Rock Lee-

Por eso prefiero tocar la base de datos como ultimo recurso y medio por obligacion, aunque ¿aplica para 2.1? o ¿solo 2.0? ... Nunca borre directo pero no tuve problema pero si con ID fantasmas algunas veces me dieron algunos lios al momento de validar ciertas cosas.


Saludos!
¡Regresando como cual Fenix! ~ Bomber Code
Ayudas - Aportes - Tutoriales - Y mucho mas!!!

vicram10

Tambien se puede ver la manera de hacerlo de un tiron todo, pero asi como esta, igual esta bien planteado, esto debido a que lo hara bajo demanda y por lo tanto no consumira recursos.
Gracias Dhayzon

Advertisement: