2012-03-31 22 views
0

まず、状況を説明します。私のインデックスページは、私のニュース記事が表示される2つのdiv地域で分けられています。左と右の各パーツに1つのページ番号があるため、ページを更新する必要はありません。 すべて私の古いコードで動作しますが、今はこれらの古いコードをphp pdoに変更してsql injを防止しています。自分を更新するために蟻を攻撃する:)jpページ番号付きのPHP pdo

基本的にすべてが今までうまくいく。たぶん遅すぎたり、何か他のことがあるかもしれませんが、これは私がすでにページの左側に解決策を示しているため、simpeの解決策になるはずです。違いは、文字を選択するときだけで、カテゴリ名を選択することです。これらのコードは

if ($pageNum > 1) { 
    $opage = $pageNum - 1; 
    $prev = "<a href=\"javascript:goToPage(" . $opage . ");\"><img src=\"/firstPage.gif\" /> </a>"; 
    $first = "<a href=\"javascript:goToPage(" . $opage . ");\">[<<]</a>"; 
} else { 
    $prev = ''; // we're on page one, don't enable 'previous' link 
    $first = ' <font size=\"3\">[<<] </font>'; // nor 'first page' link 
} 

ajaxRequest.js

function goToPage(page) { 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) { 
     alert ("Your browser does not support AJAX!"); 
     return; 
    } 
    var url="myPageBlockLeft.php"; 
    url=url+"?opage="+page; 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") { 
      document.getElementById('contentRight').innerHTML=xmlhttp.responseText; 
      initLightbox(); 
     } 
    } 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(null); 
} 
をたどるように、第2のページに戻りますonclickのjsファイルを起動します の作業コード、ページの左側に

$offset = ($pageNum - 1) * $rowsPerPage; 
$selectString = '%News-BlockLeft%'; 
$STH = $DBH->prepare("SELECT ... " . 
     "FROM News, Categories, NewsCheck " . 
     "WHERE Name LIKE :selectString " . 
     "ORDER BY `NewsDate` DESC LIMIT :offset, :rowsPerPage"); 

$STH->bindParam(':selectString ', $selectString, PDO::PARAM_STR); 
$STH->bindParam(':offset', $offset, PDO::PARAM_INT); 
$STH->bindParam(':rowsPerPage', $rowsPerPage, PDO::PARAM_INT); 
$STH->execute(); 

: は、ここでは、コードです

選択文字列はほぼ同じですが、選択している左側で選択します

WHERE Name LIKE :selectString 

と動作していない他のどのに私が選択する必要がありWhere Name=:selectString

ホープの質問は、あなたがより多くの情報が必要な場合は、お問い合わせください、私は疲れている原因は、あまりにも混乱して音されていません。

答えて

1

ダンノーあなたの問題は何ですか。しかし、WHERE Name='%News-BlockLeft%'の条件ではほとんどすべての行が返されません。

まず、mysqlコンソールでクエリを実行して、動作しているかどうかを確認する必要があります。
その後、動的にビルドを開始することがあります。

また、WHERE Name LIKE '%News-BlockLeft%'は大きな設計上の欠陥です。
いくつかの異なるパラメータを使用して、左のブロックニュースを指定しなければなりません。これは自家製の文字列比較ではありません。

関連する問題