在jquery数据表中加入查询问题

时间:2015-11-18 03:54:03

标签: php jquery mysql datatables

我正在使用带有服务器端处理的jquery数据表。我正在尝试使join查询生成输出。

所以我把列数组改成了这样的东西:

$aColumns = array (
                   "u.user_id", 
                   "CONCAT(u.first_name, ' ', u.last_name)", 
                   "u.gender", 
                   "CONCAT(a.suburb, ', ', a.zip_code)", 
                   "u.date_registered"
                 );

并改变了这样的查询。

$sQuery = "SELECT SQL_CALC_FOUND_ROWS u.user_id 
                    , CONCAT(u.first_name, ' ', u.last_name)
                    , u.gender
                    , CONCAT(a.suburb, ', ', a.zip_code)
                    , u.date_registered
    FROM users u 
    INNER JOIN user_addresses a ON a.user_id = u.user_id ".$sWhere.$sOrder.$sLimit;

然后我可以填充数据表。但它的搜索,过滤和排序不起作用。

当我尝试搜索,过滤或排序时,我可以得到这种错误。

  

'where子句'中的未知列'u.user_id'

更新 当我回显$sQuery

时,这是输出
SELECT SQL_CALC_FOUND_ROWS  u.user_id 
                          , CONCAT(u.first_name, ' ', u.last_name)
                          , u.gender
                          , CONCAT(a.suburb, ', ', a.zip_code)
                          , u.date_registered
FROM users u 
INNER JOIN user_addresses a ON a.user_id = u.user_id AND a.address_type = 1  
WHERE (`u.user_id` LIKE '%s%' OR `CONCAT(u.first_name, ' ', u.last_name)` LIKE '%s%' OR `u.gender` LIKE '%s%' OR `CONCAT
(a.suburb, ', ', a.zip_code)` LIKE '%s%' OR `u.date_registered` LIKE '%s%') LIMIT 0, 10 
Unknown column 'u.user_id' in 'where clause'

任何人都可以帮助我。 谢谢。

1 个答案:

答案 0 :(得分:0)

您要在反引号中包装列名,而不仅仅是列名。

例如,您有:

    <!-- jQuery -->
    <script 

    src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script>

    <!-- Firebase -->
    <script src='https://cdn.firebase.com/js/client/2.1.0/firebase.js'>  </script>


    <title>View lightning map</title>

  <style>
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>


    <script>
// RADIUS VARIABLE
var rad;
var lat; 
var log;
function retrieve (){


var x = 1;
var messagesRef = new Firebase("https://glaring-torch-4299.firebaseio.com/");
messagesRef.once('child_added', function(snapshot) {
    var data = snapshot.val();
    // UNTUK TEST
alert(data.latitude +" "+ data.longitude +" "+data.radius);
    lat = data.latitude;
    log = data.longitude;
    rad = data.radius;
alert (lat + " " + log + " " + radius);
    // UNTUK TEST

    x++;
  });

}



retrieve();



var latlang = {lat: lat, lng: log};


// center map
var citymap = {
  chicago: {
    center: latLang
  }
};

function initMap() {
  // Create the map.
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 8,
    center: latlang,

  });

  // Construct the circle for each value in citymap.

  for (var city in citymap) {
    // Add the circle for this city to the map.
    var cityCircle = new google.maps.Circle({
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 2,
      fillColor: '#FF0000',
      fillOpacity: 0.35,
      map: map,
      center: latLang,
      radius: rad
    });
  }
}

    </script>
    <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCSdOKkpLmCe-

dMQ2XqfcReIvro396CGtk&signed_in=true&callback=initMap"></script>
  </body>
</html>

它应该在哪里:

`u.user_id`

您需要在where子句中为所有值更改此值。