Wie kombiniere ich die zwei $ SQL-Abfragen in eine $ SQL-Abfrage. Ich möchte einen Namen, eine Adresse, eine Stadt oder einen Bundesstaat eingeben und sie nur anzeigen lassen, wenn sie sich innerhalb eines angegebenen Längen- und Breitengradbereichs befinden. Ich habe viele Möglichkeiten versucht, diese $ sql zu einem zu kombinieren, aber ich kann die Logik nicht verstehen. Hilfe bitte.Wie Abfrageergebnisse nur angezeigt werden, wenn Länge und Breite in einer bestimmten Entfernung sind
$sql = "SELECT *, (3959 * acos(cos(radians(47.64585)) * cos(radians(lat)) * cos(radians(longitude) - radians(-117.159999))
+ sin(radians(47.64585)) * sin(radians(lat)))) AS distance FROM table HAVING distance > 100";
Die $ sql oben und die $ sql unten funktionieren beide gut, wenn getrennt ausgeführt. Ich habe nur den obigen $ sql-Code eingefügt und nicht alle Verbindungen und Dinge, die dazu gehören. Ich kann die gesamte Verbindung liefern und den Tabellencode bei Bedarf anzeigen. Ich werde auch Längen-, Breiten- und Entfernungsvariablen für meinen aktuellen Standort verwenden. Ich habe sie nur hart codiert, um meine Beispiele hoffentlich lesbarer zu machen.
$name = "text entered from search form";
$db= new pdo("mysql:host=localhost;dbname=$dbname",$username,$password);
$sql="SELECT * FROM table WHERE
companyname LIKE '%" . $name . "%'
OR
address LIKE '%" . $name . "%'
OR
city LIKE '%" . $name ."%'
OR
state LIKE '%" . $name ."%'";
$result = $db->query($sql);
$numrows=$result->fetch(PDO::FETCH_ASSOC);
if ($result != false) {
while($row=$result->fetch(PDO::FETCH_ASSOC)){
$client_id=$row['client_id'];
$companyname =$row['companyname'];
$address=$row['address'];
$city=$row['city'];
$state=$row['state'];
echo $client_id, $companyname, $address, $city, $state;
}
}
$result = null;