Äîáðûé äåíü, èìååòñÿ ñêðèïò âûâîäà èç òàáëèöû ñîäåðæèìîãî íà ãëàâíóþ ñòðàíèöó
ôîðóìà, è èìååòñÿ ëèñòèíã, íî ëèñòèíã íå ñîâñåì óäà÷íûé.
Âîò òàê ñêðèïò âûãëÿäèò íà äàííûé ìîìåíò, ïîæàëóéñòà íå óæàñàéòåñü:
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> "; 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 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 íàïèñàë(à):
îé-åé-åé...
ýòî ÷òî-òî... òàêîå...
íå óæåëè òðàíñëÿòîð íå ðóãàåòñÿ íà \\" ?
åùå ïîïðàâëþ, ÷òî ïðèâåäåííûé ëèñòèíã íå êëàññ, à ïðîñòî ñêðèïò. ïëîõî îôîðìëåííûé
òåïåðü ê âîïðîñó. òî÷íûé òåêñò îøèáî÷êè ìîæíî?
Ñïóñòÿ 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 çà ïîìîùü:)
Íàïèñàë ñàì ëèñòèíã ïî ìàíóàëàì.