Привет, я делаю сайт в php с базой данных доступа к Microsoft через odbc, и я столкнулся с небольшой проблемой, позвольте мне сначала показать вам мои коды.php sql using odbc
<form method ="POST" action="maxtimestamplog.php">
Longitude <input type="text" name="longitude" /><br/>
Latitude
<input type ="text" name = "latitude"/>
<input name="ok" type="submit" value="Submit" />
</form>
<?
$dbc = odbc_connect("X1","",""); // Trying to establish connection
// with database
echo "<br>";
$datetime =date('Y-m-d H:i:s', strtotime('+8 hours'));
echo "The Current date/time is $datetime";
echo "<br><br><br>";
if (!$dbc)
{
exit("Connection failed:".$dbc);
}
$x_origin = $_POST['longitude'];
$y_origin = $_POST['latitude'];
$query = " SELECT m.vehicle_no,
l.longitude,
l.latitude,
l.timestamp
FROM
vehicle_log AS l,
GPS_modem AS m
WHERE
m.modem_ID = l.modem_ID
AND l.timestamp = (
SELECT MAX(timestamp) FROM vehicle_log WHERE modem_ID = l.modem_ID
) order by timestamp desc
"; // SQL Statement
$rs = odbc_exec($dbc,$query);
if (!$rs)
{
exit("Error in SQL. ".$rs);
}
$i=1;
while (odbc_fetch_row($rs))
{
$lng = odbc_result($rs, "longitude");
$lat = odbc_result ($rs, "latitude");
$ts = odbc_result ($rs, "timestamp");
$vno = odbc_result ($rs, "vehicle_no");
$yyyy= substr($ts, 0, 4);
$mm= substr($ts, 5, 2);
$dd= substr($ts, 8,2);
$hr= substr($ts, 11, 2);
$min= substr($ts, 14,2);
$sec= substr($ts,17, 2);
$cyyyy= substr($datetime, 0, 4);
$cmm= substr($datetime, 5, 2);
$cdd= substr($datetime, 8,2);
$chr= substr($datetime, 11, 2);
$cmin= substr($datetime, 14,2);
$csec= substr($datetime,17, 2);
$ctss = $csec
+ ($cmin * 60)
+ ($chr * 60 * 60)
+ ($cdd * 24 * 60 * 60)
+ ($cmm * 30 * 24 * 60 * 60)
+ ($cyyyy * 365 * 24 * 60 * 60);
$tss = $sec
+ (cmin * 60) + ($hr * 60 * 60)
+ ($dd * 24 * 60 * 60)
+ ($mm * 30 * 24 * 60 * 60)
+ ($yyyy * 365 * 24 * 60 * 60);
$tssd = $ctss - $tss;
$x = $lng;
$y = $lat;
$i = $i + 1;
$xd = ($x - $x_origin);
$yd = ($y - $y_origin);
$d = ($xd*$xd) + ($yd*$yd);
$td = sqrt($d);
echo "Car Number $vno is at a distance $td away at timestamp $ts";
echo "</br></br>";
}
odbc_close($dbc);
?>
</HTML>
то, что я хочу сделать сейчас, это показать только один выход не всех. Во-первых, я хочу, чтобы выбрать только те данные, где переменная $ tssd меньше или равно 10800, то я хочу, чтобы отобразить наименьшее $ тд из того, что я выбрал и Шоуда отображения
echo "Car Number $vno is at a distance $td away at timestamp $ts";
echo "</br></br>";
где $ тд является менее чем в пределах $ tssd меньше 10800 Он должен отображать только
Пожалуйста, попробуйте помочь мне, я совершенно новый для php, и мое заявление sql довольно беспорядочно, так как я испугаюсь.
Строго говоря, вы не используете базу данных «MS Access», а базу данных Jet. Часть «Доступ» MDB (формы/отчеты/etc.) Не может использоваться через ODBC - могут использоваться только таблицы данных и запросы (т. Е. Чистые объекты Jet). И да, вы правы, что MS назвала драйвер ODBC «MS Access». –
Строго говоря, это СУБД, а не «база данных», и они назвали драйвер «Microsoft Access». Но, эй, кто должен быть строгим? ;-) – onedaywhen
Конечно, люди часто ссылаются на объекты MS Access (управление формой, функция NZ() и т. Д.) В объектах ACE/Jet (правило проверки, VIEW, PROCEDURE и т. Д.), Тем самым, при этом объекты ACE/Jet непригодны для использования ODBC, OLE DB и т. Д. – onedaywhen