Я создаю простой сайт для продажи и покупки и хочу перечислить последние объявления на первых страницах. В моей базе данных есть 4 таблицы. USERS
, CARS
, ELECTRONICS
И COMPUTERS
.
Каждая из трех таблиц элементов ( CARS
, ELECTRONICS
и COMPUTERS
) имеет DATESTAMP
в них, но мне не удается легко отсортировать их после этого DATESTAMP
с использованием MySQL и PHP.
Все они содержат разные столбцы, но имеют DATESTAMP
и SSN
(идентификация пользователя, как он владеет объявлением).
Я попытался присоединиться к таблицам, отсортировав их с помощью strtotime в php .. но я не могу заставить синтаксис играть. Играл с этим кодом .. но он очень усложнился, и я надеялся, что смогу сделать это проще в чистом SQL. Это не полный, но .. вы можете видеть, о чем я думал ..
<?php mysql_connect("localhost","root",""); mysql_select_db("project"); $SSN = utf8_decode(strip_tags($_GET['ssn'])); //firstname,lastname, email, phone, address, zipcode, district $result = mysql_query("SELECT * FROM CARS WHERE CARS.SSN = '$SSN'"); $result2 = mysql_query("SELECT * FROM ELECTRONICS WHERE ELECTRONICS s.SSN = '$SSN'"); if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; } while($obj = mysql_fetch_object($result)) { $arr[] = $obj; } echo '{"users":'.json_encode($arr).'}'; if (!$result2) { echo 'Could not run query: ' . mysql_error(); exit; } while($obj = mysql_fetch_object($result2)) { $arr[] = $obj; } echo '{"users":'.json_encode($arr).'}'; function mysort($a, $b) { return(strtotime($b['datePosted']) - strtotime($a['datePosted'])); } // pre-sort: echo "<pre>Before:\n"; print_r($arr); // do the sort: usort($arr, 'mysort'); // show the result: echo "After:\n"; print_r($arr); echo "</pre>"; ?>
С точки зрения дизайна у вас может быть таблица ITEMS, содержащая атрибуты, относящиеся ко всем типам элементов, например ID, DATESTAMP, SSN. Имейте идентификационные номера PK на каждой из других связанных с товарами таблиц, которые соответствуют идентификатору соответствующего элемента из таблицы ITEMS.
ITEMS ID DATESTAMP SSN 1 2011-01-01 12345 2 2011-01-02 12345 3 2011-01-04 54321 CARS ID MANUFACTURER MODEL 1 Volvo V40 3 Volkswagen Beetle COMPUTERS ID BRAND PROCESSOR 2 Dell 386