2010-02-22 5 views
0

Hey j'essaie d'obtenir 2 requêtes sql principales pour être plus dynamique.Modifier les requêtes dynamiquement - php, jquery

Lorsque l'utilisateur clique sur le lien de marketing, je veux les 2 questions ci-dessous pour être mis à jour avec ce lien Id:

1. <?php generate_pagination('SELECT * FROM explore WHERE category="marketing"'); ?> 

donc quand le lien de marketing est cliqué, je veux la requête de changer la catégorie la requête à quel que soit l'identifiant ou la classe du lien. Dans ce cas "marketing".

Voici l'autre question qui doit être mis à jour dynamiquement avec le même lien clic:

2. $sql = "SELECT * FROM explore WHERE category='marketing' ORDER BY category LIMIT $start,$per_page"; 

Il y a un total de trois pages, affiché ci-dessous:

pagination.php

<?php 
function generate_pagination($sql) { 
    include_once('config.php'); 
    $per_page = 3; 

    //Calculating no of pages 
    $result = mysql_query($sql); 
    $count = mysql_num_rows($result); 
    $pages = ceil($count/$per_page); 

    //Pagination Numbers 
    for($i=1; $i<=$pages; $i++) 
    { 
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>'; 
    } 
} 
?> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 
<script type="text/javascript" src="jquery_pagination.js"></script> 

<div id="loading" ></div> 
<div id="content" data-page="1"></div> 
<ul id="pagination"> 

<?php generate_pagination('SELECT * FROM explore WHERE category="marketing"'); ?> 

<a href="#" id="marketing">Marketing</a> 

</ul> 
<br /> 
<br /> 

pagination_data.php:

<?php 
include('config.php'); 
$per_page = 3; 
if($_GET) 
{ 
$page=$_GET['page']; 
} 

$start = ($page-1)*$per_page; 
//$sql = "select * from explore order by id limit $start,$per_page"; 
$sql = "SELECT * FROM explore WHERE category='marketing' ORDER BY category LIMIT $start,$per_page"; 
$result = mysql_query($sql); 
?> 
<table width="800px"> 
<?php 
while($row = mysql_fetch_array($result)) 
{ 
$msg_id=$row['id']; 
$message=$row['site_description']; 
$site_price=$row['site_price']; 

?> 
<tr> 
<td><?php echo $msg_id; ?></td> 
<td><?php echo $message; ?></td> 
<td><?php echo $site_price; ?></td> 
</tr> 
<?php 
} 
?> 
</table> 

jquery_pagination.php:

$(document).ready(function(){ 

    //Display Loading Image 
    function Display_Load() 
    { 
     $("#loading").fadeIn(900,0); 
     $("#loading").html("<img src='bigLoader.gif' />"); 
    } 
    //Hide Loading Image 
    function Hide_Load() 
    { 
     $("#loading").fadeOut('slow'); 
    }; 


    //Default Starting Page Results 

    $("#pagination li:first").css({'color' : '#FF0084'}).css({'border' : 'none'}); 

    Display_Load(); 

    $("#content").load("pagination_data.php?page=1", Hide_Load()); 



    //Pagination Click 
    $("#pagination li").click(function(){ 

     Display_Load(); 

     //CSS Styles 
     $("#pagination li") 
     .css({'border' : 'solid #dddddd 1px'}) 
     .css({'color' : '#0063DC'}); 

     $(this) 
     .css({'color' : '#FF0084'}) 
     .css({'border' : 'none'}); 

     //Loading Data 
     var pageNum = this.id; 

    $("#content").load("pagination_data.php?page=" + pageNum, function(){ 
      Hide_Load(); 
      $(this).attr('data-page', pageNum); 
    }); 
}); 

// Editing below.   
     // Sort content Marketing  
     $("#pagination a#marketing").click(function() { 


     Display_Load(); 

     //CSS Styles 
     $("#pagination li") 
     .css({'border' : 'solid #dddddd 1px'}) 
     .css({'color' : '#0063DC'}); 

     $(this) 
     .css({'color' : '#FF0084'}) 
     .css({'border' : 'none'}); 

       var pageNum = $('#content').attr('data-page'); 

       $("#content").load("pagination.data.php?page=" + pageNum, Hide_Load()); 
       }); 

}); 

Répondre

1

Pour simplifier les choses, vous devriez toujours interroger avec une taille limite et page, même si le décalage est 0.

.. LIMIT 0,3 

Soit un autre chef requête ou valeur mise en cache les enregistrements (pour le nombre maximum de pages). COUNT de Mysql est mieux pour cela que num_row'ing SELECT *.

$start = intval($_GET['page']); // zero if null or false 
$sql = "SELECT * FROM explore WHERE category='marketing' ORDER BY category LIMIT $start,$per_page"; 
+0

cette classe ne joue pas avec les limites ... ou dit la page de la classe http://phpsense.com/php/php-pagination-script.html – CheeseConQueso

Questions connexes