0

次のphpコードに一種の問題があります。

$host="localhost";
$user_name="";
$pwd="";
$database_name="";

$conexiune = mysql_connect($host,$user_name,$pwd) or die("Nu ma pot conecta la         MySQL!");
mysql_select_db($database_name, $conexiune) or die("Nu gasesc baza de date");

if (isset($_GET["page"])) {
    $page  = $_GET["page"];
} else {
    $page=1;
};

$start_from = ($page-1) * 1;
$sql = "SELECT * FROM citate ORDER BY id DESC LIMIT $start_from, 1";
$rs_result = mysql_query ($sql,$conexiune);


while ($row = mysql_fetch_assoc($rs_result))
    echo "<img src='" . $row['poza'] . "' />
             <br />
             " . $row['titlu'] . "
             <br />
             " . $row['descriere'] . "
             <br />
                     " . $row['data'] . "
        ";

$sql = "SELECT COUNT(id) FROM citate";
$rs_result = mysql_query($sql,$conexiune);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / 1);

$pagelink ='<a href="lista.php?page='.($page-1).'"><<</a> ';
$pagelink_2='<a href="lista.php?page='.($page+1).'">>></a> ';

if($page>1)
    echo $pagelink;

if($page<2)
    echo "";

for ($i=1; $i<=$total_pages; $i++) {
    if ($i != $page)
        echo "<a href='lista.php?page=".$i."'>".$i."</a> "; // xxxx = your page url address
    if ($i==$page)
        echo " <strong>". $i . "</strong> "; // defining class in the style sheet you         can add colour or border to the displayed number
};

if($page<$total_pages)
    echo $pagelink_2;

そのコードは私にページネーションを提供します(あなたはすでにそれを知っています)、そしてURLバーのアドレスは次のようになります:

    http://www.site.ro/folder/lista.php?page=PAGE-NUMBER

次のようになりたい: http://www.site.ro/folder/lista.php?citat=SOME-NUMBERS&page=PAGE-NUMBER

私のデータベーステーブルはそのように取り込まれました:

  --------------------------------------------------------------
  |  id | poza | titlu | descriere | citat | data | accesari   |
  --------------------------------------------------------------

「citat」列からデータを抽出したいので、URL バーからのリンクは次のようになります。

    http://www.site.ro/folder/lista.php?citat=EXTRACTED-FROM-CITAT&page=PAGE-NUMBER

次のページのボタンを押すたびに、次のようになります。

    http://www.site.ro/folder/lista.php?citat=2748925&page=1
    http://www.site.ro/folder/lista.php?citat=2840194&page=2

etcetera..どうすればそのコードを変更できますか? 少し早いですがお礼を !

4

3 に答える 3

1

私はあなたのセキュリティ問題をすべて無視しています。

これは、1 ページに 1 つのアイテムのみを表示する限り機能します。

$last_citat = 0;
while ($row = mysql_fetch_assoc($rs_result)) {
    echo "<img src='" . $row['poza'] . "' /><br />" . $row['titlu'] . "<br />" . $row['descriere'] . " <br />" . $row['data'] . "";
    $last_citat = $row['citat'];
}

以降:

$pagelink ='<a href="lista.php?citat='.$last_citat.'&page='.($page-1).'"><<</a> ';
$pagelink_2='<a href="lista.php?citat='.$last_citat.'&page='.($page+1).'">>></a> ';

if($page>1) { echo $pagelink; }
if($page<2) { echo ""; }

for ($i=1; $i<=$total_pages; $i++) {
    if ($i != $page) {
        echo "<a href='lista.php?citat=".$last_citat."&page=".$i."'>".$i."</a> "; 
    }
    if ($i==$page) {
        echo " <strong>". $i . "</strong> "; 
    }
}
于 2013-08-22T11:16:38.027 に答える
0

データベースの結果を 'citat' 値でフィルタリングしますか?

その場合は、次のように get パラメータ 'citat' を含むリンクを作成する必要があります。

<a href="lista.php?citat=NUMBER&page='.($page-1).'"><<</a> 

後で GET['citat'] を取り、SQL クエリwhere部分に追加して、次のように特定の citat 値を持つ結果のみが返されるようにします。

$sql = "SELECT * FROM citate WHERE citat = '".GET['citat']."' ORDER BY id DESC LIMIT $start_from, 1";

注: これは実際の例ではなく、書かれたように使用するのは間違っています: GET['citat']をエスケープする必要があります。そうしないと、データベースが非常に簡単かつすぐにハッキングされるからです!

于 2013-08-22T11:09:37.247 に答える
0

while ループから citat の値を取得します。

$citat = $row['citat'];

次に、$citat どこでも好きなように使用できます。URL の citat パラメータを確認するには、次の方法で実行できます。

if (isset($_GET['citat'])) {
  //it's there do something
} else {
  //it's absent
}
于 2013-08-22T11:12:57.437 に答える