MultiVote_Mod_v.1.3.3 - problem

Jeśli masz problem z nie autoryzowaną modyfikacją, nie możesz jej zainstalować lub występują błędy po jej instalacji to pisz w tym dziale.
Awatar użytkownika
Lilly
Posty: 118
Rejestracja: 19 maja 2005, 11:53
Lokalizacja: Wrocław
Kontakt:

MultiVote_Mod_v.1.3.3 - problem

Post autor: Lilly » 05 lipca 2005, 11:19

Otoz wlasnie od jakiegos czasu walcze z modem MultiVote_Mod_v.1.3.3. Problem jest w tym, ze nie jest aktualizowana baza wynikow (vote_results) po zaglosowaniu - zarowno w opcji wielokrotnego jak i pojedynczego wyboru.
Od jakiegos czasu juz szukam i na razie udalo mi sie dojsc tylko do tego, co napisalam powyzej. Moze ktos z was natknal sie juz kiedys na ten problem i zaoszczedzi mi poszukiwan ;-) Poki co wracam do kodu...
Forum grupy konwentowo-rpgowej: Hysteria
Obrazek
Jesli pomoglam, prosze o plusika ;-)

Awatar użytkownika
mateusz
Zasłużony
Posty: 2174
Rejestracja: 14 maja 2005, 17:43
Lokalizacja: JAWORZNO
Kontakt:

Post autor: mateusz » 05 lipca 2005, 14:44

a zapytania do sql dodane ??
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.

Awatar użytkownika
Lilly
Posty: 118
Rejestracja: 19 maja 2005, 11:53
Lokalizacja: Wrocław
Kontakt:

Post autor: Lilly » 05 lipca 2005, 15:46

Tak.
Problem lezy w tym, ze zapytanie zmieniajace zawartosc wspomnianej tabeli w skrypcie php w pliku posting.php nie wykonuje sie - skrypt gdzies po drodze idzie w inna strone... Jeszcze nie udalo mi sie znalesc w jaka i dlaczego...

Moze od razu pokaze moje podejrzenia:

Orginalna czesc skryptu

Kod: Zaznacz cały

else if ( $mode == 'vote' )
{
	//
	// Vote in a poll
	//
	if ( !empty($HTTP_POST_VARS['vote_id']) )
	{
		$vote_option_id = intval($HTTP_POST_VARS['vote_id']);

		$sql = "SELECT vd.vote_id    
			FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
			WHERE vd.topic_id = $topic_id 
				AND vr.vote_id = vd.vote_id 
				AND vr.vote_option_id = $vote_option_id
			GROUP BY vd.vote_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql);
		}

		if ( $vote_info = $db->sql_fetchrow($result) )
		{
			$vote_id = $vote_info['vote_id'];

			$sql = "SELECT * 
				FROM " . VOTE_USERS_TABLE . "  
				WHERE vote_id = $vote_id 
					AND vote_user_id = " . $userdata['user_id'];
			if ( !($result2 = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain user vote data for this topic', '', __LINE__, __FILE__, $sql);
			}

			if ( !($row = $db->sql_fetchrow($result2)) )
			{
				$sql = "UPDATE " . VOTE_RESULTS_TABLE . " 
					SET vote_result = vote_result + 1 
					WHERE vote_id = $vote_id 
						AND vote_option_id = $vote_option_id";
				if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql);
				}

				$sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip) 
					VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')";
				if ( !$db->sql_query($sql, END_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, "Could not insert user_id for poll", "", __LINE__, __FILE__, $sql);
				}

				$message = $lang['Vote_cast'];
			}
			else
			{
				$message = $lang['Already_voted'];
			}
			$db->sql_freeresult($result2);
		}
		else
		{
			$message = $lang['No_vote_option'];
		}
		$db->sql_freeresult($result);

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
		);
		$message .=  '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
		message_die(GENERAL_MESSAGE, $message);
	}
	else
	{
		redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
	}
}
Skrypt po dodaniu moda

Kod: Zaznacz cały

else if ( $mode == 'vote' )
{
	//
	// Vote in a poll
	//
	$vote_option_id = intval($HTTP_POST_VARS['vote_id']);
		$sql = "SELECT vd.vote_id, vd.vote_max
			FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
			WHERE vd.topic_id = $topic_id
				AND vr.vote_id = vd.vote_id
				AND vr.vote_option_id = $vote_option_id
			GROUP BY vd.vote_id";
               	if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql);
		}

		if ( $vote_info = $db->sql_fetchrow($result) )
		{
			$max_vote = $vote_info['vote_max'];
                }
	   $max_voting=count($vote_id);
	   if ($max_voting>$max_vote)
	   $max_voting=$max_vote;
	   $vddd='';
	   for($i = 0; $i < $max_voting; $i++)
	   {
	          $vbn[$i]= $vote_id[$i];	         
	   };

		$sql = "SELECT vd.vote_id    
			FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
			WHERE vd.topic_id = $topic_id 
				AND vr.vote_id = vd.vote_id
				AND vr.vote_option_id = $vote_option_id
			GROUP BY vd.vote_id";			
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql);
		}

		if ( $vote_info = $db->sql_fetchrow($result) )
		{
			$vote_id = $vote_info['vote_id'];                        
			$sql = "SELECT * 
				FROM " . VOTE_USERS_TABLE . "  
				WHERE vote_id = $vote_id 
					AND vote_user_id = " . $userdata['user_id'];					
			if ( !($result2 = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain user vote data for this topic', '', __LINE__, __FILE__, $sql);
			}

			if ( !($row = $db->sql_fetchrow($result2)) )
			{
			  for($i = 0; $i < $max_voting; $i++)
	                   {
          		        $vote_option_id = $vbn[$i];
                                $sql = "UPDATE " . VOTE_RESULTS_TABLE . "
					SET vote_result = vote_result + 1 
					WHERE vote_id = $vote_id 
						AND vote_option_id = $vote_option_id";
						$vote_option_id = $vddd;						
				       if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
				       {
					         message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql);
				       }

			   }
				$sql = "UPDATE " . VOTE_DESC_TABLE . " 
					SET vote_voted = vote_voted + 1 
					WHERE vote_id = $vote_id 
						AND topic_id = $topic_id";
				if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, 'Could not update poll voted', '', __LINE__, __FILE__, $sql);
				}
                                $sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip)
					VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')";
				if ( !$db->sql_query($sql, END_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, "Could not insert user_id for poll", "", __LINE__, __FILE__, $sql);
				}

				$message = $lang['Vote_cast'];
			}
			else
			{
				$message = $lang['Already_voted'];
			}
			$db->sql_freeresult($result2);
		}
		else
		{
			$message = $lang['No_vote_option'];
		}
		$db->sql_freeresult($result);

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
		);
		$message .=  '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
		message_die(GENERAL_MESSAGE, $message);
}
Problemem jest niewykonywanie sie tego fragmentu:

Kod: Zaznacz cały

$sql = "UPDATE " . VOTE_RESULTS_TABLE . "
					SET vote_result = vote_result + 1 
					WHERE vote_id = $vote_id 
						AND vote_option_id = $vote_option_id";
Ogolnie to pewnie jestem slepa i nie widze czegos banalnego :? Moze ktos z was cos dostrzeze...
Ostatnio zmieniony 05 lipca 2005, 16:02 przez Lilly, łącznie zmieniany 2 razy.
Forum grupy konwentowo-rpgowej: Hysteria
Obrazek
Jesli pomoglam, prosze o plusika ;-)

Awatar użytkownika
mateusz
Zasłużony
Posty: 2174
Rejestracja: 14 maja 2005, 17:43
Lokalizacja: JAWORZNO
Kontakt:

Post autor: mateusz » 05 lipca 2005, 15:54

Lilly pisze:Problem lezy w tym, ze zapytanie zmieniajace zawartosc wspomnianej tabeli w skrypcie php w pliku posting.php nie wykonuje sie
czy pojawia się błąd może zły prefix ??
podaj to zapytanie tutaj.


niepodoba mi się ten fragment:
Lilly pisze: message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql);
}

} <- czy to jest potrzebne bo coś nie dowidze albo nie :D
$sql = "UPDATE " . VOTE_DESC_TABLE . "
Zapraszam również na moje forum: www.indianie.info
www.sklepbezglutek.pl - zapraszam do sklepu z żywnością bezglutenową i niskobiałkową. Makarony, chleby, zdrowa żywność. Wysyłane od ręki bez ryzyka utraty świeżości w trakcie dostarczania.

Awatar użytkownika
Lilly
Posty: 118
Rejestracja: 19 maja 2005, 11:53
Lokalizacja: Wrocław
Kontakt:

Post autor: Lilly » 05 lipca 2005, 16:05

mateusz pisze:
Lilly pisze:Problem lezy w tym, ze zapytanie zmieniajace zawartosc wspomnianej tabeli w skrypcie php w pliku posting.php nie wykonuje sie
czy pojawia się błąd może zły prefix ??
podaj to zapytanie tutaj.
Nic sie nie pojawia - skrypt nawet do niego nie dochodzi - zatrzymuje sie na ktoryms ifie wczesniej - niestety jeszcze nie zlokalizowalam wszystkich elementow, co, skad po co i dlaczego...
mateusz pisze: niepodoba mi się ten fragment:
Lilly pisze: message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql);
}

} <- czy to jest potrzebne bo coś nie dowidze albo nie :D
$sql = "UPDATE " . VOTE_DESC_TABLE . "
To tylko wciecia sie nieszczesliwie wkleily. Jesli dobrze patrze, to odnosi sie do fora.
Forum grupy konwentowo-rpgowej: Hysteria
Obrazek
Jesli pomoglam, prosze o plusika ;-)

Awatar użytkownika
Lilly
Posty: 118
Rejestracja: 19 maja 2005, 11:53
Lokalizacja: Wrocław
Kontakt:

Post autor: Lilly » 05 lipca 2005, 17:43

Spoko, kryzys jak na razie zazegnany ;-) (teraz pozostala faza testow, ale poki co wszystko dziala poprawnie i przewidywalnie).
Dla przyszlych poszukiwaczy podam tylko info, ze pomoglo dodanie na poczatku tego fragmentu:

Kod: Zaznacz cały

$vote_id = $HTTP_POST_VARS['vote_id'];
Znalazlam to w jakims innym modzie do multivota :D
Forum grupy konwentowo-rpgowej: Hysteria
Obrazek
Jesli pomoglam, prosze o plusika ;-)

Zablokowany

Wróć do „Pomoc”