对多个表进行排序MYSQL TimeStamp

时间:2011-05-13 23:57:30

标签: php mysql sql timestamp

我正在构建一个简单的销售和购买网站,并希望在第一页上列出最新广告。在我的数据库中,我有4个表。 USERSCARSELECTRONICSCOMPUTERS

三个项目表(CARSELECTRONICSCOMPUTERS)中的每一个都包含DATESTAMP,但我无法轻松对其进行排序在此DATESTAMP之后使用MySQL和PHP。

它们都包含不同的列,但共有DATESTAMPSSN(标识用户拥有广告的方式)。

编辑:

我已尝试加入表格,在php中使用strtotime对它们进行排序..但我似乎无法让语法发挥作用。玩这个代码..但它变得非常复杂,我希望我能在纯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>"; 
?>

1 个答案:

答案 0 :(得分:0)

从设计的角度来看,您可以拥有一个ITEMS表,其中包含与所有类型的项相关的属性,例如ID,DATESTAMP,SSN。在每个与项目相关的表上都有ID PK,这些表与ITEMS表中相关项的ID相匹配。

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