Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][php] Rotator Banerów =) Oceńcie i sprawdzcie :)
dawhol
post
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


W tabeli mamy trzy pola:
"adres" - adres do strony
"obrazek" - adres do obrazka
"wyswietlen" - ilos wyswietlen smile.gif

Pliku z formularzem nie daje bo chyba kazdy wie jak wygląda winksmiley.jpg
Pliku gdzie jest wykonywana funkcja która dodaje do bazy MySQL tez nie daje poniewaz tego nie chce abyscie oceniali bo niema tam co zwykle zapytani winksmiley.jpg zalezy mi na ocenie skryptu który wyświetla banery smile.gif rotacyjnie co odswierzenie strony smile.gif. Oto jego kod:

  1. <?php
  2. $zapytanie = "SELECT * FROM cms_bannery WHERE id BETWEEN 1 AND 3 AND wyswietlen<1000 ORDER BY rand() LIMIT 1";
  3. $wykonaj = mysql_query($zapytanie);
  4.  
  5. if($dane=mysql_fetch_array($wykonaj)) 
  6. {
  7. echo ('<a href="'.$dane['adres'].'"><img src="'.$dane['obrazek'].'"></a>');
  8. } 
  9. else 
  10.  
  11. $wysw = $dane['wyswietlen'];
  12. $adres = $dane['adres'];
  13. $up = 1;
  14.  
  15. $ilwysw = $wysw+$up;
  16.  
  17. $zapytanie2 = "UPDATE cms_bannery SET wyswietlen='$ilwysw' WHERE adres='$adres'";
  18. $wykonaj2 = mysql_query($zapytanie2);
  19.  
  20. if($wykonaj2) 
  21. {
  22. echo ('');
  23. } 
  24. else 
  25. ?>


Oczywiscie skrypt po kazdym wyswietleniu banera dodaje 1 do jego liczby wyswietlen winksmiley.jpg

Prosze o oceny i ew. rady co i jak poprawic winksmiley.jpg moj drugi skrypcik po 4-5 dniach nauki smile.gif

Ten post edytował dawhol 25.07.2006, 08:14:14


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
nospor
post
Post #2





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




  1. <?php
  2. if($dane=mysql_fetch_array($wykonaj)) 
  3. {
  4. echo ('<a href="'.$dane['adres'].'"><img src="'.$dane['obrazek'].'"></a>');
  5. } 
  6. else 
  7. ?>

Te mysql_error() powinno byc po mysql_query a nie po mysql_fetch_array(). W przypadku bledu zapytania dostaniesz jeszcze niepotrzebne bledy przy mysql_fetch_array() gdyz wykonywac sie bedzie na blednych danych.
Gdy zapytanie nic ci nie zwroci, to wygenereuje sie mysql_error(), czyli nic sie nie wygeneruje, gdy errora mysql nie bedzie.
Krotko mowiac: w zlym miejscu dalej mysql_error() smile.gif

  1. ...id BETWEEN 1 AND 3...
czemu tak? mozna tylko 3 banery losowac i to tylko z zadanym id?


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

"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
dawhol
post
Post #3





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


stwierdzilem terasz ze trzeba by poprawic to tak aby wszystko wzgledem ID bylo albo obrazka a nie adresu bo czasem mozna dac dwa rozne banery pod jeden adres =)

w sumie trzeba by to popraiwc tam jes BETWEN 1 and 3 poniewaz chce aby losowal mi liczbe pomiedzy tymi trzema bo obecnie mam 3 banery w bazie ale trzeba by tam dac ostatni id z bazy smile.gif zamiast tej 3 zapomniałem to zrobic winksmiley.jpg


--------------------
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




Cytat
ale trzeba by tam dac ostatni id z bazy
Ale po co? Po co wogole warunek na te id, skoro mają byc losowane wszystkie rekordy? wystarczy warunek na wyswietlenia.


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

"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
dawhol
post
Post #5





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


no spoko ale jak nie bylo tego to mi losowal liczbe której niema w bazie a moze mialem inny blad winksmiley.jpg
musze to sprawdzic smile.gif poziej smile.gif bo teraz lece do pracy smile.gif


--------------------
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




Cytat
no spoko ale jak nie bylo tego to mi losowal liczbe której niema w bazie

jak moze losowac ci z bazy cos czego nie ma? Losuje po rekordach, ktore są


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

"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
Astarot
post
Post #7





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

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


W swoim rotatorze nie uwzględniłeś danych osadzonych w skryptach JS, a także banerków flashowych. Pozatym dodaj alt="coś" bo walidator będzie krzyczał.

<img src="'.$dane['obrazek'].'" alt="cos" />

pozdr.

Ten post edytował Astarot 25.07.2006, 09:27:42


--------------------
torrenty
Go to the top of the page
+Quote Post
dawhol
post
Post #8





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


~nospor moze i masz racje widocznie mialem inny blad smile.gif i jak go poprawilem to zapomnialem tego zmienic winksmiley.jpg no ale w koncu ucze sie od paru dni wiec odrazy nie napisze skryptół bezbłędnyc po to je tu daje zeby je ocenic i ew. podac jakies uwagi smile.gif

~astarot fatk zapomniałem o tym smile.gif zdarza sie smile.gif trzn w pierwszej wersji to było ale w pierwszej wersji nie mialem za to ilosci wyswietlen a teraz dodalem i zapomnialem o tym smile.gif


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





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


w Twoim kodzie nie ma jakże ważnego

mysql_free_result" title="Zobacz w manualu php" target="_manual


--------------------
Go to the top of the page
+Quote Post
dawhol
post
Post #10





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


~Nightwalker zaraz to dodam u siebie smile.gif dzieki za poinformowanie mnie winksmiley.jpg nawet nie znalem takiej funkcji smile.gif ale teraz juz bede o niej pamietał smile.gif w koncu czlowiek uczy sie na blędach smile.gif


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





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




bez przesady... jak juz podajecie linki to czytajcie chociaz:
Cytat
mysql_free_result() używa się tylko w wypadkach obawy zajęcia zbyt dużej ilości pamięci przez zapytania zwracające duże ilości danych. Cała pamięć przydzielona wynikowi skojarzonemu z podanym identyfikatorem wyniku będzie automatycznie zwolniona.

Skrypt tutaj zwraca jeden rekord, ktory ma sie nijak do " duże ilości danych."

edit (po poscie ponizej): z tresci posta wnioskowalem jednak ze to jest wymog dla tego skryptu a nie dobry nawyk tongue.gif


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

"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
Nightwalker
post
Post #12





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Cytat(nospor @ 25.07.2006, 13:29 ) *
bez przesady... jak juz podajecie linki to czytajcie chociaz:

Skrypt tutaj zwraca jeden rekord, ktory ma sie nijak do " duże ilości danych."



Takie coś rodzi złe nawyki, dlatego to napisałem smile.gif

Edit do posta powyżej: źle się wyraziłem, ale lepiej opróżniać ZAWSZE i później nie zapominać, niż na odwrót (przynajmniej takie jest moje zdanie w tej sprawie) winksmiley.jpg

Ten post edytował Nightwalker 25.07.2006, 17:33:59


--------------------
Go to the top of the page
+Quote Post
Turgon
post
Post #13





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Według mnie przydałoby się mysql_num_rows, gdyż wykonujemy selecta id z bazy bez warunków, czyli mamy wszystkie rekordy kolumny id. Następnie ta prosta komenda i skrypt wie spośród jakich liczb losowac.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
dawhol
post
Post #14





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


Dobra to powiem co poprawilem i moderator moze zamknac temat winksmiley.jpg jak chce ofc winksmiley.jpg

1) usubołem warunek id BETWEEN 1 AND ... smile.gif i działą moj bład był jakis smile.gif
2) dodałem pole opis w bazie oraz alt w obrazku i title w linku smile.gif
3) zrobiłem echo mysql_error w funkcji warunkowej smile.gif przy mysql_query winksmiley.jpg tak jak radzil ~nospor
4) dodałem w tabeli pole max wyswietlen i zamiast 1000 w pierwsyzsm zapytaniu sql dalem 'maxwyswietlen' tzn:
  1. SELECT * FROM cms_bannery WHERE wyswietlen<maxwyswietlen ORDER BY rand() LIMIT 1


działa pięknie winksmiley.jpg jeszcze pozniej sie pobawei aby wyszczególnic banery gif od flasha i innych smile.gif ale to pozniej smile.gif

Ten post edytował dawhol 25.07.2006, 17:19:51


--------------------
Go to the top of the page
+Quote Post
Nightwalker
post
Post #15





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


I jeszcze jedno, dlaczego wyciągasz wszystko z bazy (SELECT *) zamiast wyciągnąć tylko potrzebne pola, przykładowo

  1. SELECT `pole1`, `pole2`, `pole3` FROM `tabela`


?

Komentarz do wpisu poniżej: nie znam struktury bazy, a przeważnie potrzebne jest tylko kilka pól...

Ten post edytował Nightwalker 25.07.2006, 18:52:49


--------------------
Go to the top of the page
+Quote Post
dawhol
post
Post #16





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


no bo wszystko jest mi potrzbne smile.gif to chyba logiczne winksmiley.jpg


--------------------
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 - 15:08