首先,我创建了一个屏幕演员阵容,以解释我拥有什么以及我试图创建什么。更容易理解。
请在此处查看屏幕投影:http://www.youtube.com/v/lZf3S3EGHDw?fs=1&;hl=en_US&;rel=0&;hd=1
表格:
CREATE TABLE `locations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(45) DEFAULT NULL,
`latitude` decimal(10,6) DEFAULT NULL,
`longitude` decimal(10,6) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `locations` (`id`,`title`,`latitude`,`longitude`)
VALUES
(1, Randall Automotive Car Repair ,42.729642,-84.515524),
(2, Belle Tire ,42.662458,-84.538177),
(3, Better Buy Muffler & Breaks ,42.740845,-84.589541),
(4, Kwik Car Wash ,42.721221,-84.545926);
CREATE TABLE `listings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`token` varchar(4) DEFAULT NULL,
`location` varchar(45) DEFAULT NULL,
`info` varchar(70) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`auto_inactive` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `listings` (`id`,`token`,`location`,`info`,`status`,`auto_inactive`)
VALUES
(35, 4uaJ , 1 , All employees are NSA certified. , active , 0 ),
(36, RdcX , 1 , Family Owned and Operated , active , 0 ),
(37, WuaZ , 1 , Also repair Small engines , active , 0 ),
(38, 2jxD , 2 , Open on the weekends. , active , 0 ),
(39, Xsu4 , 2 , Two locations in this town. , active , 0 ),
(40, p9cB , 2 , Advertise on Tiger s Baseball , active , 0 ),
(41, mYa3 , 2 , Started right here in Michigan , active , 0 ),
(42, Q8g5 , 3 , Building built in 1997 , active , 0 ),
(43, l734 , 3 , Great ratings from BBB , active , 0 ),
(44, 7cLY , 4 , Open in the Winter , active , 0 ),
(45, gtlU , 4 , Largest car wash in town , active , 0 ),
(46, fEjK , 4 , Owned and Operated by John Smith , active , 1285614174 ),
(47, dRcu , 4 , Opened in 1987 , inactive , 0 );
<?php
include_once( include.php ); // Calls the Mysql Database`
ini_set( date.timezone , America/Detroit );
$user_latitude = 42.7160084;
$user_longitude = -84.5615018;
$sql = mysqli_query($mysqli, "SELECT
loc.id,
loc.title,
( 3959 * acos( cos( radians( ".$user_latitude." ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( ".$user_longitude." ) ) + sin( radians( ".$user_latitude." ) ) * sin( radians( latitude ) ) ) ) AS distance
FROM
locations loc
WHERE EXISTS(SELECT NULL FROM listings li
WHERE li.location = loc.id
AND li.status = active
AND (li.auto_inactive > ".time()." OR li.auto_inactive = 0 ))
ORDER BY distance");
while($locations = mysqli_fetch_array($sql)) {
$listings = mysqli_fetch_array(mysqli_query($mysqli, "SELECT listings.token, listings.info FROM listings WHERE (listings.location = ".$locations[ id ]." ) AND listings.status = active AND (listings.auto_inactive > ".time()." OR listings.auto_inactive = 0 ) ORDER BY RAND()"));
echo <a href="listing.php?id= .$listings[ token ]. "><h2> .$locations[ title ]. </h2></a> ;
echo <h5>Distance: .sprintf ( %.2f , $locations[ distance ]). mi</h5> ;
echo <p> .$listings[ info ]. </p> ;
echo <hr/> ;
}
?>
如果你需要澄清什么,请告诉我。非常感谢。