Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rotacja ogłoszeń
m-dom
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 9.11.2009

Ostrzeżenie: (0%)
-----


Witam.

Chciałbym zrobić na swojej stronie głównej aby wyświetlały się tylko ogłoszenia promowane przez użytkowników.

Może ktoś pomoże mi przerobić poniższy kod, aby na stronie głównej wyświetlane były tylko oferty promowane, ale rotacyjnie to znaczy przy każdym odświeżeniu strony mają się pojawiać losowo ogłoszenia promowane. Coś takiego jak jest na stronie oferty-dom.pl

Kod
<?php

    
  
   if(!empty($this->advertisements)) {
  
      echo '<table class="advTop" cellspacing="0" cellpadding="0" border="0">
               <tr>
                  <td class="advTopCam"><center>&nbsp;&nbsp;<img src="public/images/camera.gif" alt=""/></center></td>
                  <td class="advTopType">&nbsp;<b>typ nieruchomości</b><br/>&nbsp;typ ogłoszenia</td>
                  <td class="advTopSize"><b>powierzchnia</b></td>
                  <td class="advTopPrice"><b>cena</b></td>
                  <td class="advTopPro">&nbsp;&nbsp;<b>województwo</b><br/>&nbsp;&nbsp;miasto</td>
                  <td class="advTopDate">&nbsp;&nbsp;<b>data dodania</b></td>
                
               </tr>
            </table>
            
            <table style="margin-top:5px;" cellpadding="0" cellspacing="0">';
            
            foreach($this->advertisements as $advertisement) {
      
               if($advertisement->promo) { ///////////////////////////////////////////////////////////////// promo advertise
              
               echo '<tr >
                        <td>
                           <a href="adv/show/'.StringModifier::FriendlyUrl($advertisement->advertisementType).'/'.StringModifier::FriendlyUrl($advertisement->propertyType).'/'.StringModifier::FriendlyUrl($advertisement->province).'/'.$advertisement->id.'.html"><img src="public/images/';
      
                           if(!empty($advertisement->image))
                              echo 'advertisements/'.$advertisement->image.'_thumb.jpg';
                           else
                              echo 'photo.gif';
      
                           echo '" class="photoPromo" alt=""/></a>
                         </td>
                         <td style="padding-top:5px;" valign="top">
                           <table cellspacing="0" cellpadding="0" border="0">
                              <tr>
                                 <td class="offerTypePromo">
                                    <img src="public/images/p.gif" style="float:left;margin-right:5px;" alt=""/> <a href="adv/show/'.StringModifier::FriendlyUrl($advertisement->advertisementType).'/'.StringModifier::FriendlyUrl($advertisement->propertyType).'/'.StringModifier::FriendlyUrl($advertisement->province).'/'.$advertisement->id.'.html"><b>'.mb_strtoupper($advertisement->propertyType, "UTF-8").'</b><br/>'.$advertisement->advertisementType.'</a>
                                 </td>
                                 <td class="offerSizePromo">
'.$advertisement->areaSize.' m<sup><small>2</small></sup>
                                 </td>
                                 <td class="offerPricePromo">';

                                    if($advertisement->price > 0)
                                       echo $advertisement->price.' zł';
                                    else
                                       echo 'b/d';

                                 echo '</td>
                                 <td class="offerProvincePromo">
                                    <b>'.$advertisement->province.'</b><br/>
                                    '.$advertisement->city.'
                                 </td>

                                 <td class="offerDatePromo">
'.$advertisement->announceDate.'
                                 </td>
                              </tr>

                              <tr>
                                 <td colspan="4" class="offerDescPromo" valign="top">
'.StringModifier::Cut($advertisement->description, 40).' (...)
                                 </td>
                                 <td class="offerMorePromo" valign="top">
                                    <a href="adv/show/'.StringModifier::FriendlyUrl($advertisement->advertisementType).'/'.StringModifier::FriendlyUrl($advertisement->propertyType).'/'.StringModifier::FriendlyUrl($advertisement->province).'/'.$advertisement->id.'.html"><img src="public/images/more.gif" alt="" style="margin-top:2px;padding:0px;"/></a><br/>';

                                    if($this->user->admin) // admin menu
                                       echo ' <a href="account/edit/'.$advertisement->id.'"><img src="public/images/edit.gif" alt="" style="margin-top:2px;padding:0px;"/></a><br/> <a href="account/delete/'.$advertisement->id.'"><img src="public/images/delete.gif" alt=""  style="margin-top:2px;padding:0px;"/></a><br/>';
            
                                 echo '</td>
                              </tr>
                           </table>
                        </td>
                     </tr>';
              
               } else {  ///////////////////////////////////////////////////////////////// none
      
      echo '';
                      }
         }
           echo '</table>';
          
   }
?>



Pozdrawiam i z góry dziękuję za wszelką pomoc.

Ten post edytował m-dom 12.12.2009, 20:15:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Damiankossek
post
Post #2





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

Ostrzeżenie: (0%)
-----


Witaj, nie wiem czy Ci pomogę ale ja na Twoim miejscu zrobiłbym tak:

- Połączył się z bazą i zaznaczył wszystkie ogłoszenia
- Zliczył wszystkie ogłoszenia
- Następnie funkcją RAND wylosował jakiś numer zgłoszenia
- Połączył się z bazą i wybrał wylosowane przez RAND ogłoszenie

Powinno wyglądać to mniej więcej tak za pomocą biblioteki PDO

  1. $this -> pdo = $pdo = new PDO('mysql:host=adres;dbname=nazwabazy', 'login', 'pw');
  2. $request = $this -> pdo -> query("SELECT `jakiespole` FROM `nazwatableli`");
  3. $number_of_rows = $request -> rowCount();
  4. $wylosowane = rand(0, $number_of_rows);
  5. unset($request);
  6. $request = $this -> pdo -> query("SELECT * FROM `nazwatabeli` WHERE `id`='$wylosowane'");
  7.  
  8. $result = request -> fetch(PDO::FETCH_ASSOC);
  9.  
  10. $advertisement-> image = $result['nazwa_kolumny'];
  11. $advertisement-> price = $result['nazwa_kolumnby'];
  12. ...
  13.  


Ale być może któryś ze specjalstów poda Ci lepszą wskazówke (IMG:style_emoticons/default/smile.gif) Ja dopiero zaczynam z obiektówką ...
Pozdrawiam

Ten post edytował Damiankossek 12.12.2009, 14:58:52
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 21:06