2012-09-22 14 views
1

隨機選擇的圖像名稱我有一個查詢,從同一個數據庫中的3個SQL表中隨機選擇6個圖像,一旦有人點擊該圖像我想根據什麼表發送到單獨的頁面該圖像是從中選擇的。要通過查詢來實現這一點,我希望找出隨機圖像被選中的表名。如何找到從

我的SQL查詢

$sql="SELECT * 
FROM salehotel 
UNION ALL 
SELECT * 
FROM saleland 
UNION ALL 
SELECT * 
FROM salehouse 
ORDER BY RAND() 
LIMIT 6 
"; 
$result=mysql_query($sql)or die(mysql_error()); 
?> 
<?php 
     while($row = mysql_fetch_array($result)) 
     {?> 
    <div style="float: left; margin-left: 10px;"> 
     <a href="sale_house_detail.php?id=<?php echo $row['property_id']; ?>"> 
      <img src=<?= '"admin/uploads/'.$row['image1'].'"'; ?> width="172px" height="149px" style='border:5px solid #CCC' /> 
     </a> 
    <p><?php echo $row['Type']; ?></p> 
    <p><?php echo $row['Location']; ?></p> 
    </div> 

    <?php } 
    ?> 

回答

3

創建一個新的字段,表示在SQL源表:

$sql="SELECT salehotel.*, 'salehotel' as source 
FROM salehotel 
UNION ALL 
SELECT saleland.*, 'saleland' as source 
FROM saleland 
UNION ALL 
SELECT salehouse.*, 'salehouse' as source 
FROM salehouse 
ORDER BY RAND() 
LIMIT 6 
"; 

你的PHP則可以顯示此列:

<?php echo $row['source']; ?> 
+0

這個工作正常。謝謝.... – Yasitha

1

在查詢中包括表名:

SELECT 'salehotel' as which, sh.* 
FROM salehotel sh 
UNION ALL 
SELECT 'saleland' as which, sl.* 
FROM saleland sl 
UNION ALL 
SELECT 'salehouse' as which, sho.* 
FROM salehouse sho 
ORDER BY RAND() 
LIMIT 6 

然後相應地更改PHP代碼來處理額外的列。

1

如何select *, 'table_name'作爲一個字段,然後使用列將它們發送到適當的地方。