Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
boreas

Optimizar consulta de recomendación

Question

Hola, ya que Isidro sigue desaparecido en alguna isla del caribe y nadie sabe su paradero abro este tema para ver si entre todos podemos resolver esto. (aclaro nuevamente que no soy programador, soy un apasionado).

 

La función en cuestión es la que comparte los posts y el problema es el siguiente. Si yo tengo un par de seguidores puedo compartir un post en cuestión de segundos, todo bien, pero si tengo por ejemplo 800 tarda un par de minutos lo cuál no está bueno ya que además sobrecarga el servidor de tantas consultas...

 

/**
     * @name setSpam
     * @access public
     * @param none
     * @return string
     * @info ESTA FUNCION ES PARA REALIZAR RECOMENDACIONES
	*/
	public function setSpam(){
		global $tsCore, $tsUser, $tsActividad;
		//
		$postid = $_POST['postid'];
        // TIENE SEGUIDORES?
		$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT follow_id FROM u_follows WHERE f_id = \''.$tsUser->uid.'\'  AND f_type = \'1\' LIMIT 1');
        $seguidores = db_exec('num_rows', $query);
        // YA LO HA RECOMENDADO?
		$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT follow_id FROM u_follows WHERE f_id = \''.(int)$postid.'\' AND f_user = \''.$tsUser->uid.'\' AND f_type = \'3\' LIMIT 1');
        $recomendado = db_exec('num_rows', $query);
        
        if($seguidores < 1) return '0-Debes tener al menos un seguidor';
        if($recomendado > 0) return '0-No puedes recomendar el mismo post m&aacute;s de una vez.'; 
		//
		$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT post_user FROM p_posts WHERE post_id = \''.(int)$postid.'\' LIMIT 1');
		$data = db_exec('fetch_assoc', $query);
		
		//
		if($tsUser->uid != $data['post_user']){
            // GUARDAMOS EN FOLLOWS PUES ES LA RECOMENDACION PARA SU SEGUIDORES! xD
			db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO u_follows (f_id, f_user, f_type, f_date) VALUES (\''.(int)$postid.'\', \''.$tsUser->uid.'\', \'3\', \''.time().'\') ');
			// NOTIFICAR
			if($this->setFollowNotificacion(6, 1, $tsUser->uid, $postid)) {
                $tsActividad->setActividad(4, $postid);
                return '1-La recomendaci&oacute;n fue enviada.';
			}
		} else return '0-No puedes recomendar tus posts.';
	}

¿Alguna idea?

  • Like 1

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×