Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Jak zaimportować dane do paska informacyjnego?, z seriwus ogłoszeń
rel
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


Hej
Mam zamiar wrzucic sobie na swojej stronce pasek a'la informacyjny, u góry, pod topem :-)

Chce to zrobić na takiej zasadzie:

1. Finalny kod z danymi miałby być na tej zasadzie;
  1. <div id="dhtmlgoodies_marquee">
  2. <div class="textObj"><span class="highlighted">Breaking news!</span> This is the first headline of this marquee. Wait, more will come!</div>
  3. <div class="textObj"><span class="highlighted">STOCK NEWS:</span> Company 1 <span class="greenText">82.5</span>(+0.5), Company 2 <span class="greenText">42.9</span>(-2.4), Company 3 <span class="greenText">189.9</span>(-13.7)</div>
  4.  
  5. <div class="textObj"><span class="highlighted">Sport:</span> The soccer season is almost over in Norway now. We have a few thrilling matches ahead of us.</div>
  6. <div class="textObj"><span class="highlighted">Other news:</span> The quick brown fox jumps over a lazy dog.</div>
  7. </div>


tylko zamiast wpisów czysto tekstowych, generowanych ręcznie, chciałbym, żeby na tym pasku przejeżdżały mi treści ogłoszeń, które sa dodawane w moim serwisie.

2. CSS
  1.  
  2. #dhtmlgoodies_marquee{
  3. /* general marquee layout*/
  4. padding-top:3px;
  5. height:25px;
  6. background-color: #000;
  7.  
  8.  
  9. /* End general marquee layout */
  10.  
  11.  
  12. position:absolute;
  13. left:0px;
  14. z-index:1000;
  15. bottom:0px;
  16. display:none;
  17. width:100%;
  18. overflow:hidden;
  19. }
  20. body > div#dhtmlgoodies_marquee{ /* Firefox rule */
  21. position:fixed;
  22. }
  23. #dhtmlgoodies_marquee .textObj{ /* Layout for the marquee text */
  24. position:absolute;
  25. color: #FFF;
  26. font-weight:bold;
  27. white-space:nowrap;
  28. font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
  29. }
  30. /* Just some layout classes used in this script */
  31. .highlighted{
  32. color:#F00;
  33. }
  34. .greenText{
  35. color:#0F0;


3. JS
  1.  
  2.  
  3. <script type=\"text/javascript\">
  4.  
  5. var dhtmlgoodies_marqueeSteps = 2; // Higher = Faster, Lower = slower and more smoothly
  6. var dhtmlgoodies_marqueeSpeed = 8; // Lower value = Faster
  7. var dhtmlgoodies_marqueeStopOnMouseOver = false; // Make the marquee stop moving when user moves his mouse over it
  8. var dhtmlgoodies_marqueePosition = \'bottom\'; // \"top\" or \"bottom\"
  9.  
  10. /* Don\'t change anything below here */
  11. var dhtmlgoodies_marqueeObj;
  12. var dhtmlgoodies_marqueeTextObj;
  13. var dhtmlgoodies_marqueeTmpStep;
  14. var dhtmlgoodies_marqueeTextObjects = new Array();
  15. var dhtmlgoodies_marqueeHiddenSpans = new Array();
  16.  
  17. var dhtmlgoodies_marqueeIndex = 0;
  18. function repositionMarquee(e,timeout)
  19. {
  20. if(document.all)e=event;
  21. if(dhtmlgoodies_marqueePosition.toLowerCase()==\'top\'){
  22. dhtmlgoodies_marqueeObj.style.top = \'0px\';
  23. }else{
  24. dhtmlgoodies_marqueeObj.style.bottom = \'-1px\';
  25. }
  26. if(document.all && !timeout)setTimeout(\'repositionMarquee(false,true)\',500)
  27. }
  28. function marqueeMove()
  29. {
  30. var leftPos = dhtmlgoodies_marqueeTextObj.offsetLeft;
  31. leftPos = leftPos - dhtmlgoodies_marqueeTmpStep;
  32. var rightEdge = leftPos + dhtmlgoodies_marqueeHiddenSpans[dhtmlgoodies_marqueeIndex].offsetLeft;
  33. if(rightEdge<0){
  34. leftPos = document.documentElement.offsetWidth;
  35. dhtmlgoodies_marqueeTextObj.style.display=\'none\';
  36. dhtmlgoodies_marqueeIndex++;
  37. if(dhtmlgoodies_marqueeIndex>=dhtmlgoodies_marqueeTextObjects.length)dhtmlgoodies_marqueeIndex = 0;
  38. dhtmlgoodies_marqueeTextObj = dhtmlgoodies_marqueeTextObjects[dhtmlgoodies_marqueeIndex];
  39. dhtmlgoodies_marqueeTextObj.style.display=\'block\';
  40.  
  41. }
  42. dhtmlgoodies_marqueeTextObj.style.left = leftPos + \'px\';
  43.  
  44. }
  45.  
  46. function stopMarqueeMove()
  47. {
  48. if(dhtmlgoodies_marqueeStopOnMouseOver)dhtmlgoodies_marqueeTmpStep = 0;
  49. }
  50. function resumeMarqueeMove()
  51. {
  52. dhtmlgoodies_marqueeTmpStep = dhtmlgoodies_marqueeSteps;
  53. }
  54. function initMarquee()
  55. {
  56. dhtmlgoodies_marqueeObj = document.getElementById(\'dhtmlgoodies_marquee\');
  57.  
  58. var spans = dhtmlgoodies_marqueeObj.getElementsByTagName(\'DIV\');
  59. for(var no=0;no<spans.length;no++){
  60. if(spans[no].className==\'textObj\'){
  61. if(!dhtmlgoodies_marqueeTextObj){
  62. dhtmlgoodies_marqueeTextObj = spans[no];
  63. spans[no].style.display=\'block\';
  64. }else spans[no].style.display=\'none\';
  65. dhtmlgoodies_marqueeTextObjects.push(spans[no]);
  66. var hiddenSpan = document.createElement(\'SPAN\');
  67. hiddenSpan.innerHTML = \'&nbsp;\'
  68. spans[no].appendChild(hiddenSpan);
  69. dhtmlgoodies_marqueeHiddenSpans.push(hiddenSpan);
  70.  
  71. }
  72. }
  73. if(dhtmlgoodies_marqueePosition.toLowerCase()==\'top\'){
  74. dhtmlgoodies_marqueeObj.style.top = \'0px\';
  75. }else{
  76. if(document.all){
  77. dhtmlgoodies_marqueeObj.style.bottom = \'0px\';
  78. }else{
  79. dhtmlgoodies_marqueeObj.style.bottom = \'-1px\';
  80. }
  81. }
  82.  
  83.  
  84.  
  85.  
  86. dhtmlgoodies_marqueeObj.style.display=\'block\';
  87. dhtmlgoodies_marqueeTextObj.style.left = document.documentElement.offsetWidth + \'px\';
  88. dhtmlgoodies_marqueeObj.onmouseover = stopMarqueeMove;
  89. dhtmlgoodies_marqueeObj.onmouseout = resumeMarqueeMove;
  90. if(document.all)window.onscroll = repositionMarquee; else dhtmlgoodies_marqueeObj.style.position = \'fixed\';
  91.  
  92. dhtmlgoodies_marqueeObj.style.display=\'block\';
  93. dhtmlgoodies_marqueeTmpStep = dhtmlgoodies_marqueeSteps;
  94.  
  95. setInterval(\'marqueeMove()\',dhtmlgoodies_marqueeSpeed);
  96. }
  97.  
  98. </script>


Jak wg Was powinienem dalej zając sie tym, by w miejscu tekstu "Breaking news!</span> This is the first headline of this marquee. Wait, more will come!" pojawiały się wspomniane przeze mnie ogłoszenia.

Ten post edytował rel 9.01.2014, 10:04:51
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pewnie dane masz w bazie. Musisz sie wiec polaczyc z bazą, pobrac interesujace cie dane i na ich podstawie zbudowac kod HTML jaki oczekujesz.

przenosze na przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rel
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


ok, tylko bardziej chodziło mi o to, jak ugryźć to:

Daję załóżmy coś podobnego do:

  1. <?php
  2. mysql_connect ("localhost", "root", "") or die ("nie mozna polaczyc sie z mysql");
  3.  
  4. mysql_select_db ("nazwa bazy danych") or die ("nie mozna polaczyc sie z mysql");
  5.  
  6. $wynik = mysql_query ("SELECT * FROM tabela");
  7. while ($wynik && $rekord = mysql_fetch_array ($wynik)) {
  8.  
  9. $tytul= $rekord['tytul'];
  10.  
  11. echo "<h2>".$rekord['tytul']."</h2>";
  12. }
  13. ?>


Ale chciałbym tylko, żeby wyświetlało np. tytuł ogłoszenia, bo wyświetlac na pasku treść np. 200 znaków to bez sensu. Może to być różnie zrobione, user raz da myślniki, raz kropki, etc

Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i git. Jaki masz wiec problem by zbudowac swojego diva?

  1. $ret = '<div id="dhtmlgoodies_marquee">';
  2. while ($wynik && $rekord = mysql_fetch_array ($wynik)) {
  3. $tytul= $rekord['tytul'];
  4. $ret.=' <div class="textObj"><span class="highlighted">'.$tytul.'</span></div>';
  5. }
  6. $ret.='</div>';
  7. echo $ret;

Ot i cala filozofia


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rel
post
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


Może inaczej, jestem cieniutki w php, wiec zapytam jeszcze.

Otóż w tabeli annoucements mam kolumny:
annoucement_id
annoucement_type (tutaj jest rożróżnienie na różne kategorie annoucement) - z niej chciałbym pobrac tylko te np, które są oznaczone "3"
annoucement_title (tutaj jest tytuł)
annoucement_price (wiadomo, cena)
annoucement_city
annoucement_telephone

te powyższe dane chciałbym wyświetlić na tym wspomnianym pasku. Podpowiesz jak to ugryśźć? Oczywiscie id jest mi niepotrzebne bo klienta to nie interesuje, a type chciałem wykorzystać tylko po to, by annoucement o typie 1,2 nie były brane pod uwagę.

Ten post edytował rel 9.01.2014, 11:03:39
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez masz wszystko napisane ..... Jak pobrac i jak wygenerowac DIVa. Jedyne co musisz zrobic sam to podstawic wlasicwa nazwe tabeli i nazwe pol.... no to chyba mozesz zrobic? Chocby glupią metoda prob i bledow.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rel
post
Post #7





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


Ok, zmieniłem sobie to w ten sposób, bardziej czytelnie:

  1. <?php
  2.  
  3. $sql_host = 'localhost';
  4. $sql_user = 'userek';
  5. $sql_password = 'poprawne_haslo';
  6. $sql_baza = 'poprawna_nazwa_bazy';
  7.  
  8. if (mysql_connect($sql_host, $sql_user, $sql_password) and mysql_select_db($sql_baza)) {
  9. $zapytanie = mysql_query("SELECT * FROM nazwa_tabeli");
  10. if ($zapytanie) {
  11.  
  12. while ($wynik = mysql_fetch_array($zapytanie)) {
  13. echo $wynik["annoucement_title"]. echo $wynik["annoucement_city"],;
  14. }
  15. }
  16. else {
  17. echo "Nie można pobrac danych!";
  18. }
  19. }
  20.  
  21. ?>


I to byłoby ok. Problem tylko dla mnie jest taki, że nie za bardzo potrafie poradzić sobie z tym, żeby wyświetliło/pobrało mi tylko te rekordy, które maja annoucement_type o wartości "3" (a są ogólnie 1,2,3,4 - takie możliwości typów).


Ten post edytował rel 9.01.2014, 12:18:28
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zeby pobrac tylko zadane rekordy, musisz to zapytania dodac WHERE
.... where annoucement_type=3


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rel
post
Post #9





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


Super, wielkie dzięki, pomogłeś i to mocno.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:08