2013-05-15 58 views
0

問題聲明:我正在使用我的應用程序中的關注用戶功能,並且需要一些功能。 我有一個優惠清單(發佈者用戶)顯示在我的頁面上,其中有一個「關注供應商」按鈕。現在任何登錄用戶都可以點擊關注按鈕並關注發佈優惠的人在php mysql應用程序中處理關注用戶功能

查詢:現在,如果用戶已經跟隨該供應商,下一次供應商的任何職位提供後續的按鈕應該「跟隨」或「已跟隨」,因爲他已經跟着他來代替。
現在我可以得到登錄用戶在數組中的跟蹤記錄的結果。這是offer中顯示爲循環的offer div的結構。

<div class="box col2"> 
    <div class="innerBox"> <img src="http://codex.abc.com/upload_deals/files/221x208/<?php echo $resDeal['productImg'];?>"> 
     <p><?php echo $resDeal['productName']; ?></p> 
     <p class="styleTxt">Added <?php echo $timer; ?> ago</p> 
     <div class="clear"></div> 
     <div class="over"> 
      <div class="twitter"> 
       <a href="https://twitter.com/share" class="twitter-share-button" data-lang="en" data-url="http://www.abc.com/salesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>">Tweet</a> 
       <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> 
      </div> 
      <!-- Facebook share button Start --> 
      <div class="facebook"> 
       <fb:share-button type="button_count" href="http://www.abc.com/biggisalesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>"></fb:share-button> 

      </div> 
      <!-- Facebook share button End --> 
      <div class="pintrest"> 
       <!-- Pinterest button Start --> 
        <a href="javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)})());"><img alt="Pin It!" style='border: none;' src="http://assets.pinterest.com/images/pidgets/pin_it_button.png"/></a> 
        <!-- Pinterest button End --> 
      </div> 
      <div class="clear"></div> 
      <a href="javascript:void(0)" class="red follow" saleId="<?php echo $resDeal['saleId'];?>">Follow Vendor</a> 
     </div> 
    </div> 
    <div class="bottom"> 
     <h3><?php echo $resDeal['discount']; ?> Off</h3> 
     <a href="biggisalesDetails.php?dealId=<?php echo $resDeal['saleId']; ?>">MORE</a> 
    </div> 
</div> 

只能有一個時間超過100個報價,所以什麼是檢查用戶是否通過要約的人張貼的供應商按照最有效的方法是什麼?
我雖然獲得數組中的值,並檢查每個提議,如果供應商ID存在於供應商陣列後跟用戶? 像這樣:select followedUserId from follow where userId =34。將它存儲在一個數組中,並檢查供應商是否匹配它
這是一個好方法,還是我可以以任何方式進一步優化它?
建議表示讚賞

回答

1

你曾建議將做工精細的設計。 還有其他選項,如:

  1. 獲取將顯示在頁面
  2. 由用戶
  3. 獲取被跟隨供應商ID列表中取兩路口供應商ID列表列出所有將在頁面上顯示的供應商ID列表,並遵循

但是,真的,這些基本上是做你所描述的奇特方法。出於以下原因:(a)有效;(b)簡單;(c)易於理解;(d)易於維護;我會堅持你所描述的選項,即。

  1. SELECT followuserid FROM follow WHERE userId=[insert user id here]
  2. 存儲陣列中的
  3. 每次你輸出的項目,檢查供應商ID是在陣列
  4. 在使用PHP的if-else塊,有條件地顯示不同的內容給用戶。

如果你真的想要把它帶到了最高,可以排序數組,並選擇一個好的算法來搜索它,甚至建立一個新的數據結構,比如一棵樹,但實際上這是採取簡單問題並使其非常複雜。

+0

我喜歡你放它的方式。感謝你的投入! :) – KillABug