Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2014, 23:45
kristhian23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 16 años, 3 meses
Puntos: 2
como asignarle condiciones a la busqueda de una tabla con datatable

hola tengo una tabla que muestra nas de 5 mil registro con datatable y me toco realizarlo con el metodo

'bProcessing': true,
'bServerSide': true,
'sAjaxSource':consulta.php'

tengo dos problemas..
1 nose donde colocar una condicion donde me muestre solo los registros activos por ejemplo los que traigan el titulo de SI cada registro trae un campo que se llama campo16 y tiene que mostras solo losque esten asi campo16='SI' pero aqui si le agrego where no me hace la busqueda...

este archivo es un ejemplo esta igual solo con otro nombre pero me podrian decir... donde coloco el where campo16='SI' aqui??


consulta.php
Código PHP:
<?php
         
     
     
    
/* Array of database columns which should be read and sent back to DataTables. Use a space where
     * you want to insert a non-database field (for example a counter or static image)
     */
    
$aColumns = array ( 'id''product_name''price''taxable_goods''details''category''subcategory''ship_weight''sale_price');
     
    
/* Indexed column (used for fast and accurate table cardinality) */
    
$sIndexColumn "id";
     
    
/* DB table to use */
    
$sTable "products";
     
     
     
     
     
    
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     
    $gaSql['link'] =  mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password']  ) or
        die( 'Could not open connection to server' );
     
    mysql_select_db( $gaSql['db'], $gaSql['link'] ) or
        die( 'Could not select database '. $gaSql['db'] );
     
     
    /*
     * Paging
     */
    
$sLimit "";
    if ( isset( 
$_POST['iDisplayStart'] ) && $_POST['iDisplayLength'] != '-1' )
    {
        
$sLimit "LIMIT ".mysql_real_escape_string$_POST['iDisplayStart'] ).", ".
            
mysql_real_escape_string$_POST['iDisplayLength'] );
    }
     
     
    
/*
     * Ordering
     */
    
if ( isset( $_POST['iSortCol_0'] ) )
    {
        
$sOrder "ORDER BY  ";
        for ( 
$i=$i<intval$_POST['iSortingCols'] ) ; $i++ )
        {
            if ( 
$_POST'bSortable_'.intval($_POST['iSortCol_'.$i]) ] == "true" )
            {
                
$sOrder .= $aColumnsintval$_POST['iSortCol_'.$i] ) ]."
                    "
.mysql_real_escape_string$_POST['sSortDir_'.$i] ) .", ";
            }
        }
         
        
$sOrder substr_replace$sOrder"", -);
        if ( 
$sOrder == "ORDER BY" )
        {
            
$sOrder "";
        }
    }
     
     
    
/*
 
    $sWhere = "";
    if ( $_POST['sSearch'] != "" )
    {
        $sWhere = "WHERE (";
        for ( $i=0 ; $i<count($aColumns) ; $i++ )
        {
            $sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string( $_POST['sSearch'] )."%' OR ";
        }
        $sWhere = substr_replace( $sWhere, "", -3 );
        $sWhere .= ')';
    }
     
    /* Individual column filtering */
    
for ( $i=$i<count($aColumns) ; $i++ )
    {
        if ( 
$_POST['bSearchable_'.$i] == "true" && $_POST['sSearch_'.$i] != '' )
        {
            if ( 
$sWhere == "" )
            {
                
$sWhere "WHERE ";
            }
            else
            {
                
$sWhere .= " AND ";
            }
            
$sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string($_POST['sSearch_'.$i])."%' ";
        }
    }
     
     
    
/*
     * SQL queries
     * Get data to display
     */
    
$sQuery "
        SELECT SQL_CALC_FOUND_ROWS "
.str_replace(" , "" "implode(", "$aColumns))."
        FROM   $sTable
        $sWhere
        $sOrder
        $sLimit
    "
;
    
$rResult mysql_query$sQuery$gaSql['link'] ) or die(mysql_error());
     
    
/* Data set length after filtering */
    
$sQuery "
        SELECT FOUND_ROWS()
    "
;
    
$rResultFilterTotal mysql_query$sQuery$gaSql['link'] ) or die(mysql_error());
    
$aResultFilterTotal mysql_fetch_array($rResultFilterTotal);
    
$iFilteredTotal $aResultFilterTotal[0];
     
    
/* Total data set length */
    
$sQuery "
        SELECT COUNT("
.$sIndexColumn.")
        FROM   $sTable
    "
;
    
$rResultTotal mysql_query$sQuery$gaSql['link'] ) or die(mysql_error());
    
$aResultTotal mysql_fetch_array($rResultTotal);
    
$iTotal $aResultTotal[0];
     
     
    
/*
     * Output
     */
    
$sOutput '{';
    
$sOutput .= '"sEcho": '.intval($_POST['sEcho']).', ';
    
$sOutput .= '"iTotalRecords": '.$iTotal.', ';
    
$sOutput .= '"iTotalDisplayRecords": '.$iFilteredTotal.', ';
    
$sOutput .= '"aaData": [ ';
    while ( 
$aRow mysql_fetch_array$rResult ) )
    {
        
$sOutput .= "[";
        for ( 
$i=$i<count($aColumns) ; $i++ )
        {
            if ( 
$aColumns[$i] == "version" )
            {
                
/* Special output formatting for 'version' */
                
$sOutput .= ($aRow$aColumns[$i] ]=="0") ?
                    
'"-",' :
                    
'"'.str_replace('"''\"'$aRow$aColumns[$i] ]).'",';
            }
            else if ( 
$aColumns[$i] != ' ' )
            {
                
/* General output */
                
$sOutput .= '"'.str_replace('"''\"'$aRow$aColumns[$i] ]).'",';
            }
        }
         
        
/*
         * Optional Configuration:
         * If you need to add any extra columns (add/edit/delete etc) to the table, that aren't in the
         * database - you can do it here
         */
         
         
        
$sOutput substr_replace$sOutput"", -);
        
$sOutput .= "],";
    }
    
$sOutput substr_replace$sOutput"", -);
    
$sOutput .= '] }';
     
    echo 
$sOutput;
?>
2- tengo una class que necesito transferir al archivo consulta.php

Código PHP:
        $.template.init();

        
// Table sort - DataTables
        
var table = $('#sorting-advanced');
        
table.dataTable({
            
'aoColumnDefs': [
                { 
'bSortable'false'aTargets': [ 0] }
            ],
            
'sPaginationType''full_numbers',
            
'sDom''<"dataTables_header"lfr>t<"dataTables_footer"ip>',
            
'fnInitComplete': function( oSettings )
            {
                
// Style length select
                
table.closest('.dataTables_wrapper').find('.dataTables_length select').addClass('select blue-gradient glossy').styleSelect();    
                
tableStyled true;
                $(
'input.switch').styleCheckable();
                
            },
            
'bProcessing'true,
            
'bServerSide'true,
            
'sAjaxSource''consulta.php'
            
        
}); 
este $('input.switch').styleCheckable();

me carga bien pero cuando hago una busqueda en el search de datatable me lo bota o cuando hago click en los botones de paginacion como lo paso?


de ante manos gracias..

Última edición por kristhian23; 01/08/2014 a las 23:51