2011-07-23 8 views
0
$today = date('D, d M, Y'); 
$sql = "SELECT * FROM table WHERE date = '$today'"; 
if ($_POST!="") { 
    $mydate = mysql_real_escape_string($_POST['datepicker']); 
    if ($mydate != "") {  
     $sql = "SELECT * FROM table WHERE date = '$mydate'";  
    }  
} 
$num_results_per_page = 8; 
$num_page_links_per_page = 5; 
$pg_param = ""; 
$result=mysql_query($sql); 
$row = mysql_fetch_array($result); 
pagination($sql, $num_results_per_page, $num_page_links_per_page, $pg_param); 
if($pg_error == '') 
{ 
    if(mysql_num_rows($pg_result) > 0) 
    { 
     while($data = mysql_fetch_assoc($pg_result)) 
     { 
      echo ""; 
     }   
     echo "</br>". $pagination_output; 
    } 
    else 
    { 
     echo "No Data."; 
    } 
} 
else 
{ 
    echo $pg_error; 
} 

今日は選択$のページネーションが正しく機能しています。 select $ mydateの場合、ページネーションは2番目のページには価値がありません。 $ mydateの2ページ目がクリックされると、今日も$になります。つまり、2回目のクリックは$ mydateを次のページに投稿していません。どのようにして2番目のページに値を取り入れることができますか?あなたは$_POST$_GETの概念を混同しているようページネーションは第2ページに値するものではありませんか?

pagination.php

$pg_error = ''; 
$pg_result = ''; 
$pagination_output = ''; 
$max_pages = ''; 
$page_id = ''; 
$page_numbers_per_page = ''; 
$pg_user_param = ''; 
function pagination($sql, $num_results_per_page, $num_page_links_per_page, $pg_param) 
{ 
global $pg_error, $pg_result, $max_pages, $page_id, $page_numbers_per_page, $pg_user_param; 
$user_sql = $sql; 
$page_numbers_per_page = $num_page_links_per_page; 
$results_per_page = $num_results_per_page; 
$pg_user_param = $pg_param; 
$all_results = mysql_query($user_sql); 
if($all_results) 
{ 
    if(empty($all_results)) 
    { 
     $total_results = 0; 
    } 
    else 
    { 
     $total_results = mysql_num_rows($all_results); 
    } 
    $max_pages = ceil($total_results/$results_per_page);    
    if(isset($_GET['page_id'])) 
    {   
     $page_id = (int) $_GET['page_id'];   

     if($page_id > $max_pages || empty($page_id)) 
     { 
      $page_id = 1;    
     } 
    } 
    else 
    { 
     $page_id = 1;   
    } 
    $page_id_temp = ($page_id - 1) * $results_per_page; 
    $sql_offset = $page_id_temp; 
    $user_sql .= " limit $sql_offset, $results_per_page";  
    $pg_result = mysql_query($user_sql); 
    Create_Links();  
} 
else 
{ 
    $pg_error = 'Error with the sql query you entered: '.mysql_error(); 
} 
} 
function Create_Links() 
{ 
global $pagination_output, $max_pages, $page_id, $page_numbers_per_page, $pg_user_param; 
$pg_page_name = htmlspecialchars($_SERVER['PHP_SELF']); 

if($max_pages > 1) 
{    
    if($page_id > 1) 
    {   
     $first_link = '<a href="'.$pg_page_name.'?page_id=1'.$pg_user_param.'">First</a> '; 
    } 

    if($page_id < $max_pages) 
    {   
     $last_link = '<a href="'.$pg_page_name.'?page_id='.$max_pages . $pg_user_param.'">Last</a> '; 
    } 
    $pre_id = $page_id - 1; 
    if($pre_id != 0) 
    { 
     $pre_link = '<a href="'.$pg_page_name.'?page_id='.$pre_id . $pg_user_param.'">Previous</a> '; 
    }  
    $next_id = $page_id + 1; 
    if($next_id <= $max_pages) 
    { 
     $next_link = '<a href="'.$pg_page_name.'?page_id='.$next_id . $pg_user_param.'">Next</a> '; 
    } 

    if($page_id >= $page_numbers_per_page) 
    { 

     $start_point = ($page_id - $page_numbers_per_page) + 2; 
    } 
    else 
    {   
     $start_point = 1; 
    } 

    $loop_num = ($start_point + $page_numbers_per_page) - 1; 
    if($loop_num > $max_pages) 
    { 
     $loop_num = $max_pages; 
    } 
    $pagination_output = '<div class="pagination"> '; 
    $pagination_output .= $first_link; 
    $pagination_output .= $pre_link;   
    for($i = $start_point; $i <= $loop_num; $i++) 
    { 
     if($i == $page_id) 
     { 
      $pagination_output .= '<a class="current">'.$i.'</a> '; 
     } 
     else 
     { 
      $pagination_output .= '<a href="'.$pg_page_name.'?page_id='.$i . $pg_user_param.'">'.$i.'</a> '; 
     } 
    }  
    $pagination_output .= $next_link; 
    $pagination_output .= $last_link;  
    $pagination_output .= '</div><br />'; 
} 
} 
?> 

答えて

0

が見えます。

ページ分割リンクで'<a href="'.$pg_page_name.'?page_id='.$i . $pg_user_param.'"...を指すようにすると、SQLクエリを作成する前に$_GET['page_id']を傍受する必要があります。

あなたのトップコードは$_POST['datepicker']を参照していますが、フォームはどこにも言及しておらず、あなたのページネーションリンクはあなたの例でそのデータを投稿していません。あなたのコード内

+0

@AlienWebguy ..

<入力ALIGN = "中心" タイプ= "隠れた" ID = "日付ピッカー" のonChange = "this.form.submit()。 " name = "datepicker" />
saam1234

1

機能ページネーションは、得られたMySQLのクエリのリソースを返していない、とあなたのコードは、ページネーション関数呼び出し

からお戻りの$ pg_resultを追加する が必要であることを受信して​​いません。あなたのページネーション機能で

および追加$結果=ページネーション(....

編集: は申し訳ありませんが、私はあなたがリターンと私が言ったソリューションを必要としない、グローバルにpg_resultを追加気づいたが、あなたドンmysql_queryが必要で、その前にフェッチして、結果をどこに出力するのかわかりません。最後に編集したものを試してみてください。

編集:

$today = date('D, d M, Y'); 
$sql = "SELECT * FROM table WHERE date = '$today'"; 
if ($_POST!="") { 
    $mydate = mysql_real_escape_string($_POST['datepicker']); 
    if ($mydate != "") {  
     $sql = "SELECT * FROM table WHERE date = '$mydate'";  
    }  
} 
$num_results_per_page = 8; 
$num_page_links_per_page = 5; 
$pg_param = ""; 
//$result=mysql_query($sql); 
$pg_result=pagination($sql, $num_results_per_page, $num_page_links_per_page, $pg_param); 


if($pg_error == '' && is_resource($pg_result)) 
{ 

    if(mysql_num_rows($pg_result) > 0) 
    { 
     while($data = mysql_fetch_assoc($pg_result)) 
     { 
      var_dump($data); 
     }   
     echo "</br>". $pagination_output; 
    } 
    else 
    { 
     echo "No Data."; 
    } 
} 
else 
{ 
    echo $pg_error; 
} 

ページネーション.php

$pg_error = ''; 
$pg_result = ''; 
$pagination_output = ''; 
$max_pages = ''; 
$page_id = ''; 
$page_numbers_per_page = ''; 
$pg_user_param = ''; 
function pagination($sql, $num_results_per_page, $num_page_links_per_page, $pg_param) 
{ 
global $pg_error, $pg_result, $max_pages, $page_id, $page_numbers_per_page, $pg_user_param; 
$user_sql = $sql; 
$page_numbers_per_page = $num_page_links_per_page; 
$results_per_page = $num_results_per_page; 
$pg_user_param = $pg_param; 
$all_results = mysql_query($user_sql); 
if($all_results) 
{ 
    if(empty($all_results)) 
    { 
     $total_results = 0; 
    } 
    else 
    { 
     $total_results = mysql_num_rows($all_results); 
    } 
    $max_pages = ceil($total_results/$results_per_page);    
    if(isset($_GET['page_id'])) 
    {   
     $page_id = (int) $_GET['page_id'];   

     if($page_id > $max_pages || empty($page_id)) 
     { 
      $page_id = 1;    
     } 
    } 
    else 
    { 
     $page_id = 1;   
    } 
    $page_id_temp = ($page_id - 1) * $results_per_page; 
    $sql_offset = $page_id_temp; 
    $user_sql .= " limit $sql_offset, $results_per_page";  
    $pg_result = mysql_query($user_sql); 
    Create_Links(); 
      return $pg_result; 
} 
else 
{ 
    $pg_error = 'Error with the sql query you entered: '.mysql_error(); 
} 

} 
function Create_Links() 
{ 
global $pagination_output, $max_pages, $page_id, $page_numbers_per_page, $pg_user_param; 
$pg_page_name = htmlspecialchars($_SERVER['PHP_SELF']); 

if($max_pages > 1) 
{    
    if($page_id > 1) 
    {   
     $first_link = '<a href="'.$pg_page_name.'?page_id=1'.$pg_user_param.'">First</a> '; 
    } 

    if($page_id < $max_pages) 
    {   
     $last_link = '<a href="'.$pg_page_name.'?page_id='.$max_pages . $pg_user_param.'">Last</a> '; 
    } 
    $pre_id = $page_id - 1; 
    if($pre_id != 0) 
    { 
     $pre_link = '<a href="'.$pg_page_name.'?page_id='.$pre_id . $pg_user_param.'">Previous</a> '; 
    }  
    $next_id = $page_id + 1; 
    if($next_id <= $max_pages) 
    { 
     $next_link = '<a href="'.$pg_page_name.'?page_id='.$next_id . $pg_user_param.'">Next</a> '; 
    } 

    if($page_id >= $page_numbers_per_page) 
    { 

     $start_point = ($page_id - $page_numbers_per_page) + 2; 
    } 
    else 
    {   
     $start_point = 1; 
    } 

    $loop_num = ($start_point + $page_numbers_per_page) - 1; 
    if($loop_num > $max_pages) 
    { 
     $loop_num = $max_pages; 
    } 
    $pagination_output = '<div class="pagination"> '; 
    $pagination_output .= $first_link; 
    $pagination_output .= $pre_link;   
    for($i = $start_point; $i <= $loop_num; $i++) 
    { 
     if($i == $page_id) 
     { 
      $pagination_output .= '<a class="current">'.$i.'</a> '; 
     } 
     else 
     { 
      $pagination_output .= '<a href="'.$pg_page_name.'?page_id='.$i . $pg_user_param.'">'.$i.'</a> '; 
     } 
    }  
    $pagination_output .= $next_link; 
    $pagination_output .= $last_link;  
    $pagination_output .= '</div><br />'; 
} 
} 
?> 
+0

....ありがとうございました。それはどうですか?私はPHPの専門家ではない。 – saam1234

+0

リターン機能を追加します。ページ区切り自体は表示されません。 – saam1234

+0

コードを追加して私の答えを編集しました。私は他の変更を行う必要があることに気付きました。 –

0

独自のクエリパラメータを渡すには、$pg_param = "";を使用する必要があります。例:&date=$date_value

$pg_param = "&date=$date_value"; 
+0

私はそれを試しました...うまくいきません... $ pg_paramがどのように来るか私の問い合わせに応じて教えてくれますか? – saam1234

関連する問題