Autor Zpráva
leorond
Profil
Ahoj, opět mám problém se stránkováním ve spojení s MSSQL, mám vytvořený script který funguje ale nějak špatně vypisuje.
Vypíše mi skutečný počet záznamů z databáze ale všechny jsou totožné, když ale zkontroluji odkazy které mne mají nasměrovat na na danou novinku tak se novinka zobrazí správně.

Koukněte zda neuvidíte více než já

<?php
$num        =    5;                        
$page        =    $_GET['stranka'];                            
$result00    =    mssql_query("SELECT COUNT(*) FROM ROD_news where lang='".$language."'");
$temp        =    mssql_fetch_array($result00);
$posts        =    $temp[0];                                
if    ($posts    ==    0) $posts    =    1;                        
$total        =    (($posts - 1) / $num) + 1;                 
$total        =     intval($total);                        
$page        =    intval($page);                            
if    (empty($page)    or    $page < 0)    $page    =    1;        
if    ($page    >    $total)    $page    =    $total;                
$start    =    $num * ($page - 1);                            
$result    =    mssql_query("SELECT TOP $num * FROM ROD_news where lang='".$language."' and id NOT IN (SELECT TOP $start id FROM ROD_news where lang='".$language."' ORDER BY id desc) ORDER BY id desc");
if    (mssql_num_rows($result)    >    0)                    
{
    $myrow    =    mssql_fetch_array($result);
    $headline    =    htmlspecialchars($myrow["headline"]);
    $text        =    $myrow["text"];
    $posted_by    =    htmlspecialchars($myrow["account"]);
    $date        =    date(" d.m.Y v H:i:s ", intval($myrow["time"]));
    do
    {
        printf ("<table id='news-table'>
                     <tr><td class='news-headline'><a href='?pages=pages/show&amp;news=".intval($myrow["id"])."'>".$headline."</a><font style='color:red; float:right; font-size:12px'>".$posted_by.$date."</font></td></tr>
                     <tr><td>".rozdel($text, 200)." <a class='news-all' href='?pages=pages/show&amp;news=".intval($myrow["id"])."'>[ ".all_text." ]</a>\n</td></tr>
                </table>
                <div id='oddel-bottom-center'></div>");
    }
    while    ($myrow    =    mssql_fetch_array($result));    
}                                                        
if    ($page    !=    1)        $pervpage        =    '<a href="?pages=pages/home&stranka=1">Začátek</a><a href="?pages=pages/home&stranka='.($page - 1).'">Zpět</a>';
if    ($page    !=    $total)    $nextpage        =    '<a href="?pages=pages/home&stranka='.($page + 1).'">Další</a><a href="?pages=pages/home&stranka='.$total.'">Konec</a>';
if    ($total    >    1)
{
    Error_Reporting(E_ALL & ~E_NOTICE);
    echo    "<center><div>";
    echo    $pervpage.$nextpage;
    echo    "</div></center>";
}
 ?>

Děkuji
Lonanek
Profil
Za to mohou nevhodně zvolené proměnné - $text, $posted_by a $date.
Tyto proměnné naplníte před voláním cyklu a dále již pracujete jen s nezměněnými.
buď použijte místo$posted_by.$date
toto htmlspecialchars($myrow["account"]) . date(" d.m.Y v H:i:s ", intval($myrow["time"]))
a místorozdel($text, 200)
toto rozdel($myrow["text"], 200)
nebo tyto proměnné definujte v cyklu DO-WHILE
leorond
Profil
No jo vždyť já to dal o řádku vejš :D
leorond
Profil
Děkuji Lonanek, kdyby tu bylo hodnocení tak máš palec hore ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: