[ Ïîèñê ] - [ Ïîëüçîâàòåëè ] - [ Êàëåíäàðü ]
Ïîëíàÿ Âåðñèÿ: Ëèñòèíã ñòðàíèö
meatwad!
Äîáðûé äåíü, èìååòñÿ ñêðèïò âûâîäà èç òàáëèöû ñîäåðæèìîãî íà ãëàâíóþ ñòðàíèöó ôîðóìà, è èìååòñÿ ëèñòèíã, íî ëèñòèíã íå ñîâñåì óäà÷íûé.
Âîò òàê ñêðèïò âûãëÿäèò íà äàííûé ìîìåíò, ïîæàëóéñòà íå óæàñàéòåñü:
Ñâåðíóòûé òåêñò
PHP
$all_news = $vbulletin->db->query_first("
    SELECT COUNT(`threadid`) AS all_cnt
    FROM "
. $pref ."thread
    WHERE forumid in ("
.$forum_ids.")
"
);

}
            $nextpage = "";
            $page2left = "";
            $page1left = "";
            $page2right = "";
            $page1right = "";
            if($page != 1) $pervpage = "<a title='Ïåðâàÿ ñòðàíèöà' href='index.php'><strong>«</strong></a>&nbsp;";
            if($page != 5) $nextpage = " <a title=' êîíåö' href=index.php?page=5><strong>»</strong></a>";
            if($page - 3 > 0) $page2left = " <a href=index.php?page=".($pagenum - 3).">".($pagenum - 3)."</a> | ";
            if($page - 2 > 0) $page2left = " <a href=index.php?page=".($pagenum - 2).">".($pagenum - 2)."</a> | ";
            if($page - 1 > 0) $page1left = "<a href=index.php?page=".($pagenum - 1).">".($pagenum - 1)."</a> | ";
            if($page + 3 <= 5) $page2right = " | <a href=index.php?page=".($pagenum + 3).">".($pagenum + 3)."</a>";
            if($page + 2 <= 5) $page2right = " | <a href=index.php?page=".($pagenum + 2).">".($pagenum + 2)."</a>";
            if($page + 1 <= 5) $page1right = " | <a href=index.php?page=".($pagenum + 1).">".($pagenum + 1)."</a>";
            echo "<div align=right>".$pervpage.$page2left.$page1left."<b>".$pagenum."</b>".$page1right.$page2right.$nextpage."</div>";

Íî õîòåëîñü áû âèäåòü âñ¸ íåìíîãî èíà÷å, äëÿ ýòîãî èñïîëüçîâàë ñëåäóþùèé ãîòîâûé êëàññ:
Ñâåðíóòûé òåêñò

PHP
<?PHP 
$PAGE 
= (isset($page)) ? $page : 1;  #We hope that page, not PAGE is in the querystring,    
                                     #if not we set it here 
$dbhost = "localhost"; # These are fairly self explanatory.... 
$dbname = "fillmein"; # You can remove these if you've already connected to a DB... 
$dbuser = "fillmein"; 
$dbpass 
= "fillmein"; 

$dc 
= mysql_connect($dbhost,$dbuser,$dbpass);  #Use $dc for debugging. 
mysql_select_db($dbname,$dc);  # Connect now, forget about it later. 

$QUERY = ("
    SELECT COUNT(`threadid`) AS all_cnt
    FROM "
. $pref ."thread
    WHERE forumid in ("
.$forum_ids.")
"
); 
$QRETURN
= @mysql_query($QUERY);   
$QNUM 
= @mysql_num_rows($QRETURN);   

$DISPPAGE 
= 10;  #DISPPAGE is the number of items displayed per page. 
$NUMPAGES = ceil($QNUM / $DISPPAGE);  #NUMPAGES to show how many pages you WILL get. 

if($QRETURN):  #Sanity check on query, only runs if valid query. 
  if($QNUM > 0):  #We actually got some rows. 
    echo "<div align=\"right\">\n<font face=\"Tahoma, Geneva, sans-serif\" size=\"1\">\n";   

    for
($i = 1; $i <= $NUMPAGES; $i++):  #loop to print << 1 2 3... $NUMPAGES >> 
      if($i == 1 && $PAGE > 1)  #Prints the << first to goto the previous page (not on page 1) 
        echo "<a href=\"$PHP_SELF?page=".($PAGE - 1)."\" onMouseOver=\"status='Go to the Previous Page';return true;\" onMouseOut=\"status=' ';return true;\">« </a>";   
      if
($i == $PAGE)  #Doesn't print a link itself, just prints page number 
        echo "<font color=\"#ff3333\"> $i </font>";   
      if
($i != $PAGE)  #Other links that aren't this page go here 
        echo "<a href=\"$PHP_SELF?page=$i\" onMouseOver=\"status='Go to Page $i';return true;\" onMouseOut=\"status=' ';return true;\"> $i </a>";   
      if
($i == $NUMPAGES && $PAGE != $NUMPAGES)  #  Link for next page >>  (not on last page) 
        echo "<a href=\"$PHP_SELF?page=".($PAGE + 1)."\" onMouseOver=\"status='Go to the Next Page';return true;\" onMouseOut=\"status=' ';return true;\"> »</a>";   
    endfor
;   
       
    echo 
"</font>\n</div>\n";   
    echo 
"<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">\n";   
    $START 
= ($PAGE - 1) * $DISPPAGE;   
    mysql_data_seek
($QRETURN,$START);  #Moves the pointer to right row 
    #This loop will go until you a) reach $DISPPAGE or cool.gif there aren't anymore entries 
    for($i = 1; $i <= $DISPPAGE && $ARET = @mysql_fetch_array($QRETURN); $i++):   
      $VAR 
= $ARET["col"]; #******** Here's the bit you should update! ********# 
      echo "$VAR\n<br><br>\n\n"; #echoes the field... 
      # Alternately, if you feel like numbering.  I haven't tested this. 
      #echo "<b>".$START + ($i - 1)."</b>: $VAR\n<br><br>\n\n"; 
    endfor;   
       
    echo 
"</font>\n";   
  endif
;   

  if
($QNUM == 0)  #if we get no rows 
    echo "<div align=\"center\">The database is empty</div>\n";   
endif;   

if(!$QRETURN):   # Bogus Query, or mysqld isn't running... 
  echo "<div align=\"center\">\n";   
  echo 
"<font face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#ff3333\" size=\"3\">\n";   
  echo 
"Either the database is down, or the query was invalid\n";   
  echo 
"</font>\n</div>\n";   
endif;

Êîòîðûé ññûëàëñÿ íà íåâåðíîñòü çàïðîñà, ïîäñêàæèòå ãäå ñêðûâàåòñÿ îøèáêà?



Ñïóñòÿ 1 ÷àñ, 22 ìèíóòû, 18 ñåêóíä (28.06.2009 - 16:23) glock18 íàïèñàë(à):
îé-åé-åé...

ýòî ÷òî-òî... òàêîå...

íå óæåëè òðàíñëÿòîð íå ðóãàåòñÿ íà \\" ?

åùå ïîïðàâëþ, ÷òî ïðèâåäåííûé ëèñòèíã íå êëàññ, à ïðîñòî ñêðèïò. ïëîõî îôîðìëåííûé smile.gif

òåïåðü ê âîïðîñó. òî÷íûé òåêñò îøèáî÷êè ìîæíî?

Ñïóñòÿ 4 ÷àñà, 34 ìèíóòû, 3 ñåêóíäû (28.06.2009 - 20:57) meatwad! íàïèñàë(à):
Ïðåäûäóùèé ïîñò ïîæàëóéñòà óäàëèòå. Çàáûë çàëîãèíèòüñÿ.
//" ïîÿâèëèñü ïîñëå ïîñòèíãà òåìû.

glock18
êîâû÷êè íå ÿ ïîñòàâèë. Òî÷íàÿ îøèáêà:
Öèòàòà
Either the database is down, or the query was invalid


ïåðåíåñ ñîäåðæèìîå ïðîøëîãî ïîñòà â ýòîò (glock18)

Ñïóñòÿ 13 ñåêóíä (28.06.2009 - 20:57) glock18 íàïèñàë(à):
ìíäà... âî-ïåðâûõ ýòî íå òåêñò îøèáêè, ïîñêîëüêó âûâîäèòñÿ â òåêñòå, è ïîñòàâëåí ïðîãðàììèñòîì.

âî-âòîðûõ, ýòî ïåðåâîäèòñÿ "ëèáî áàçà äàííûõ âûøëà èç ñòðîÿ (íåäîñòóïíà), ëèáî çàïðîñ èìååò îøèáêó".

â-òðåòüèõ, åñëè õîòèòå íàéòè îøèáêó, òî íå íàäî ïîâñþäó ñòàâèòü @(ñîáà÷êè) ïåðåä ôóíêöèÿìè.

íó è ñìîòðèì ÷åãî òàì ó íàñ êîíêðåòíî:
âûâîäèøü çàïðîñ íà ýêðàí ïåðåä âûïîëíåíèåì è ïðîâåðÿåøü âñå ëè òàì íîðìàëüíî.

íà áåãëûé âçãëÿä, ó òåáÿ òàì âñå íîðìàëüíî, êðîìå òîãî ÷òî èñïîëüçóåøü äâå íåïîíÿòíî îòêóäà âçÿâøèåñÿ ïåðåìåííûå. åñëè îíè íå îïðåäåëåíû, òî åñòåñòâåííî çàïðîñ íå ñðàáîòàåò.

Ñïóñòÿ 1 äåíü, 15 ÷àñîâ, 49 ìèíóò, 54 ñåêóíäû (30.06.2009 - 12:47) meatwad! íàïèñàë(à):
Òàê, ñïàñèáî glock18 çà ïîìîùü:)
Íàïèñàë ñàì ëèñòèíã ïî ìàíóàëàì.
Áûñòðûé îòâåò:

 Ãðàôè÷åñêèå ñìàéëèêè |  Ïîêàçûâàòü ïîäïèñü
Çäåñü ðàñïîëîæåíà ïîëíàÿ âåðñèÿ ýòîé ñòðàíèöû.
Invision Power Board © 2001-2024 Invision Power Services, Inc.