Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

केकपीएचपी क्वेरी डेटाबेस से निकटतम अक्षांश देशांतर

केक 3 में और कोई वर्चुअल फ़ील्ड नहीं हैं लेकिन आप अभी भी अपने परिकलित फ़ील्ड के लिए एक उपनाम बना सकते हैं

जैसा कि @ndm द्वारा सुझाया गया है, आप $latitude . को बेहतर ढंग से बाँध सकते हैं और $longitude SQL इंजेक्शन को रोकने के लिए

$distanceField = '(3959 * acos (cos ( radians(:latitude) )
    * cos( radians( Sightings.latitude ) )
    * cos( radians( Sightings.longitude )
    - radians(:longitude) )
    + sin ( radians(:latitude) )
    * sin( radians( Sightings.latitude ) )))';

कहां का उपयोग करना

$sightings = $this->Sightings->find()
    ->select([
        'distance' => $distanceField
    ])
    ->where(["$distanceField < " => $distance])
    ->bind(':latitude', $latitude, 'float')
    ->bind(':longitude', $longitude, 'float')
    ->contain(['Photos', 'Tags']);

होने का उपयोग करना

$sightings = $this->Sightings->find()
    ->select([
        'distance' => $distanceField
    ])
    ->having(['distance < ' => $distance])
    ->bind(':latitude', $latitude, 'float')
    ->bind(':longitude', $longitude, 'float')
    ->contain(['Photos', 'Tags']);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में JSON कॉलम को कैसे क्वेरी करें

  2. {} PHP में MySQL क्वेरी को कैसे प्रभावित करता है?

  3. MySQL Auto Increment Custom Values

  4. MySQL क्रिएट फंक्शन सिंटैक्स

  5. Php . का उपयोग करके तालिका में डेटा डालें