Dag allemaal

ik heb een script geschreven waarbij je kan zoeken door verschillende records.
Deze werkt goed, alleen als ik session bij de query zet, dan werkt de life search niet meer.

Dit mijn script.

index.html

				<div class="container">
      <div class="">
        <h3>Klanten overzicht</h3>
        <div class="">
		<table id="employee_grid" class="display" width="100%" cellspacing="0">
        <thead>
            <tr>
                <th>Klantnummer</th>
                <th>Naam</th>
				        <th>Contactpersoon</th>
                <th>Adres</th>
            </tr>
        </thead>
 
        <tfoot>
            <tr>
               <th>Klantnummer</th>
                <th>Naam</th>
				        <th>Contactpersoon</th>
                <th>Adres</th>
                
            </tr>
        </tfoot>
    </table>
    </div>
      </div>

    </div>

<script type="text/javascript">
$( document ).ready(function() {
$('#employee_grid').DataTable({
				 "bProcessing": true,
         "serverSide": true,
         "ajax":{
            url :"response.php", // json datasource
            type: "post",  // type of method  ,GET/POST/DELETE
            error: function(){
              $("#employee_grid_processing").css("display","none");
            }
          }
        });   
});
</script>
[/quote]

Response.php
[quote]

<?php
	//include connection file 
	include_once("connection.php");
	session_start();
   if (!isset($_SESSION['GEBRUIKER_ID'])) {
   header ("Location: ");
   die;
}

	 
	// initilize all variable
	$params = $columns = $totalRecords = $data = array();

	$params = $_REQUEST;

	//define index of column
	$columns = array( 
		0 =>'id',
		1 =>'user_id', 
		2 => 'klant_id',
		3 => 'naam_klant',
		4 => 'contactpersoon',
		5 => 'adres'
	);

	$where = $sqlTot = $sqlRec = "";
	
	// check search value exist
	if( !empty($params['search']['value'])) {   
		$where .=" WHERE ";
		$where .=" ( naam_klant LIKE '".$params['search']['value']."%' ";    
		$where .=" OR contactpersoon LIKE '".$params['search']['value']."%' ";

		$where .=" OR adres LIKE '".$params['search']['value']."%')";
	}

	// getting total number records without any search
		$sql = "SELECT id,naam_klant,contactpersoon,adres FROM klanten WHERE user_id='".$_SESSION['GEBRUIKER_ID']."' ";
	$sqlTot .= $sql;
	$sqlRec .= $sql;
	//concatenate search sql if value exist
	if(isset($where) && $where != '') {

		$sqlTot .= $where;
		$sqlRec .= $where;
	}


 	$sqlRec .=  " ORDER BY ". $columns[$params['order'][0]['column']]."   ".$params['order'][0]['dir']."  LIMIT ".$params['start']." ,".$params['length']." ";

	$queryTot = mysqli_query($conn, $sqlTot) or die("database error:". mysqli_error($conn));


	$totalRecords = mysqli_num_rows($queryTot);

	$queryRecords = mysqli_query($conn, $sqlRec) or die("error to fetch employees data");

	//iterate on results row and create new index array of data
	while( $row = mysqli_fetch_row($queryRecords) ) { 
		$data[] = $row;
	}	

	$json_data = array(
			"draw"            => intval( $params['draw'] ),   
			"recordsTotal"    => intval( $totalRecords ),  
			"recordsFiltered" => intval($totalRecords),
			"data"            => $data   // total data array
			);

	echo json_encode($json_data);  // send data as json format
?>

Wat werkt er dan niet aan? Wat gebeurt er?
SELECT id,naam_klant,contactpersoon,adres FROM klanten WHERE user_id='".$_SESSION['GEBRUIKER_ID']."' ";

Deze query gebruik ik om de klanten van de ingelogde persoon weer te geven. Dat lukt ook, maar dan werkt de zoekfunctie die in javascript is geprogrammeerd niet meer.
Deze werkt wel als ik de query zo zet:

SELECT id,naam_klant,contactpersoon,adres FROM klanten";

De bedoeling is dat de gebruiker een overzicht krijgt van zijn klanten en aan de hand daarvan kan zoeken via een life search gemaakt in javascript.
Welke error krijg je precies? En heb je de query al in een string gezet, zodat je die uiteindelijk kan echo'en?
- Ariën - op 06/06/2016 09:17:25

Welke error krijg je precies? En heb je de query al in een string gezet, zodat je die uiteindelijk kan echo'en?


Ik krijg geen error, alleen de zoekfunctie werkt dan niet meer als ik de session bij de where query zet. maar hij toont wel de juiste klanten die horen bij die user.
Een heleboel pijlen wijzen in de richting van de sessie. Dan zou ik eens kijken naar de inhoud van $_SESSION, specifiek naar de waarde op index 'GEBRUIKER_ID' en of deze mogelijk in combinatie met isset() false oplevert.
Thomas van den Heuvel op 06/06/2016 11:42:19

Een heleboel pijlen wijzen in de richting van de sessie. Dan zou ik eens kijken naar de inhoud van $_SESSION, specifiek naar de waarde op index 'GEBRUIKER_ID' en of deze mogelijk in combinatie met isset() false oplevert.


ik begrijp niet wat je bedoelt. Je hebt toch altijd een isset nodig om session gebruiker id op te roepen?
isset() is geen magische incantatie.

Met isset() controleer je simpelweg op het bestaan van een variabele. Wat in dit geval verstandig is.

Indien de variabele niet bestaat of de waarde null is retourneert isset() false.

De header() redirect is curieus, waar zou deze naartoe moeten redirecten? Kun je niet gewoon het script beëindigen en de header weglaten indien de sessievariabele niet bestaat?

Mogelijk wil je ook kijken naar hoe je uiteindelijke query er uit komt te zien en of deze ook resultaten op kan leveren.

En waarschijnlijk bedoel je live search, niet life search.

Reageren