Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sonda w jPortalu
Forum PHP.pl > Forum > PHP
regis
Witam. mam problem z sondami w jPortalu. skrypt nie pokazuje starych sond. mimo ze teoretycznie ma taka funkcje po kliknieciu "stare sondy" pojawia sie tylko ostatnia. co w tym skrypcie jest zle? najprawdopodobniej cos na samym koncu bo tam jest czesc "old poll" ale ja nie mam kompletnie pomyslu co. z gory dzieki za pomoc.

Kod
<?php

/*****************************************************/
/*      jPORTAL - internetowy system portalowy       */
/*****************************************************/
/* autor: Pawel 'jaco' Jaczewski                     */
/* email: info@websys.pl                             */
/*****************************************************/


function count_poll($id, $val)
{
     global $poll_a_tbl, $poll_b_tbl, $poll_err;


     if($_COOKIE['poll_cookie_'.$id]<>10)
     {

         setcookie('poll_cookie_'.$id, 10, time()+3600*12);

         if($val<>'')
         {
             mysql_query("UPDATE $poll_a_tbl SET votes=votes+1 WHERE id='$id'");
             mysql_query("UPDATE $poll_b_tbl SET count=count+1 WHERE vid='$id' AND value='$val'");

             $poll_err = ' - <b>Dzięki za oddanie głosu!</b>';
         }
         else
         {
             $poll_err = ' - <b>Zaznacz jakąś odpowiedź!</b>';
         }
     }
     else
     {
         $poll_err = ' - <b>Nie możesz głosować 2 razy!</b>';
     }
}



function poll_result($id='no')
{
     global $poll_a_tbl, $poll_b_tbl, $theme;

     if($id<>'no')
     {
         $query = "SELECT * FROM $poll_a_tbl WHERE id='$id'";
     }
     else
     {
         $query = "SELECT * FROM $poll_a_tbl ORDER BY id DESC LIMIT 1";
     }

     //

     $res = mysql_query($query);
     $r   = mysql_fetch_assoc($res);

     $votes = $r['votes'];


     echo '<table width="99%" border="0" align="center">
     <tr>
     <td class="uni_01" colspan="2"><center><b>'.$r['title'].'</b>

</td>
     </tr>';

     $res = mysql_query("SELECT * FROM $poll_b_tbl WHERE vid='{$r['id']}' ORDER BY value");

     $img[0] = file_exists('theme/'.$theme.'/gfx/poll_l.gif') ? '<img src="theme/'.$theme.'/gfx/poll_l.gif">' : '';
     $img[3] = file_exists('theme/'.$theme.'/gfx/poll_r.gif') ? '<img src="theme/'.$theme.'/gfx/poll_r.gif">' : '';

     while($r = mysql_fetch_assoc($res))
     {

         if($r['title']<>'')
         {


             if($votes<>0)
             {
                 $a = $r['count'] / $votes;
                 $a = $a * 100;
                 $a = round($a);
                 $b = $a * 2;
                 $c = 200 - $b;
             }
             else
             {
                 $a = 0;
                 $b = 0;
                 $c = 0;
             }

             $img[1] = $b==0 ? '' : '<img src="theme/'.$theme.'/gfx/poll.gif" height="12" width="'.$b.'">';
             $img[2] = $c==0 ? '' : '<img src="theme/'.$theme.'/gfx/poll2.gif" height="12" width="'.$c.'">';

             ksort($img);

             echo '<tr>
             <td class="uni_01" width="30%">- '.$r['title'].'</td>
             <td class="uni_01">'.join('', $img).' '.$a.'% ('.$r['count'].')</td>
             </tr>';

         }
     }

     echo '
     <table width="90%" border="0" align="center">
     <tr>
     <td class="uni_01" colspan="2">

<center>łącznie głosów: <b>'.$votes.'</b></td>
     </tr>
     </table>';

}


function old_poll()
{
     global $poll_a_tbl, $poll_b_tbl, $theme;

     $res = mysql_query("SELECT * FROM $poll_a_tbl ORDER BY id DESC");

     if(mysql_num_rows($res)>1)
     {
         echo '<hr size="1" noshade><center><b>Stare sondy</b></center><hr size="1" noshade>
';

         while($r = mysql_fetch_assoc($res))
         {
             if(!isset($s))
             {
                 poll_result($r['id']);
                 echo '<hr size="1" noshade>
';
             }

             $s++;
         }
     }
}


?>
in5ane
Może masz tylko jedną sondę w poprzednich? Bo na moje oko to nie ma nigdzie LIMIT 1 w old_pool smile.gif
regis
no własnie mam już 8 ankiet, a wyswietla tylko ostatnia. wg mnie problem jest w tym miejscu

Kod
<span class="postcolor">{
                  poll_result($r['id']);
                  echo '<hr size="1" noshade>
  ';
              }</span>


bo to jest odwolanie do funkcji poll_result, ktora ma wyswietlac wlasnie tylko jedna sonde. ale co tu jest nie tak to nie mam pojecia.
in5ane
Człowieku, ale masz to w pętli.. pętla wyświetla kilka razy.
b_chmura
spróbuj wywalić tego if'a ze zmienną $s
regis
no i pomoglo wywalenie if'a. dzieki:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.