Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] losowykolor linku dodawanego do bazy
Sketchy
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.01.2008

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


Witam,

Mam nadzieję, że moje pytanie kieruję do dobrego działu. Otóż.

Mam formularz na stronie w którym użytkownik wypełnia następujące pola: e-mail, opis, adres url.

Po dodaniu, widać go na liście gdzie każdy z dodanych wpisów jest wyświetlony jeden pod drugim.

Chciałbym aby każdy wpis dostawał losowo kolor z odpowiednio przygotowanej puli np. 6 kolorów.

Nie do końca wiem jak to wykonać, ale pomyślałem że mógłbym dodać do tabeli bazy danych pole "kolor", a podczas dodawania wpisu formularz miał by pole hidden pod które podpisany byłby losowy kolor pobierany z bazy.

Chciałbym wiedzieć jak to wykonać oraz czy może ktoś ma inne propozycje na to.

Podkreślę też, że chciałbym aby ten wyświetlany wpis z losowym kolorem pomimo wszystko miał stale przypisany kolor np. niebieski. (nie chodzi mi o losowy kolor za każdym razem wyświetlenia strony, tylko o to by każdy link miał losowo dobrany kolor.)

Przykład: Link czerwony, link niebieski, link szary, link pomarańczowy, link różowy, link czarwony, link niebieski, link niebieski, link czerwony, link szary, link pomarańczowy, link różowy... itd.)

Mam nadizeje że udało mi się konkretnie opisać o co mi chodzi.

Proszę o pomoc. Pozdrawiam i witam na forum wszystkich użytkowników
Go to the top of the page
+Quote Post
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


W tabeli dodaj pole kolor.

W skrypcie zapisującym userów przypisz im wartość pola poprzez funkcję rand()

  1. <?php
  2. $losowyKolor = rand(1,6);
  3. ?>


Wrzuć tę wartość do bazy.

Ilekroć wyświetlasz ten link, w skrypcie na początku zdefiniuj kolory choćby tak:

  1. <?php
  2. $kolor[1]='blue';
  3. $kolor[2]='red';
  4. $kolor[3]='black';
  5. $kolor[4]='green';
  6. $kolor[5]='purple';
  7. $kolor[6]='navy';
  8. ?>


A w skrypcie dalej:

  1. <a style="color:<?=$row->kolor?>" (...)>LINK</a>


Zakładam, że w $row->kolor trzymasz kolor z bazy.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
MajareQ
post
Post #3





Grupa: Zarejestrowani
Postów: 382
Pomógł: 22
Dołączył: 21.05.2007
Skąd: Elbląg

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


Ew, możesz dać kolory do tablicy assoc i wybierać losowo z tablicy i przypisywać do linku...

Ten post edytował MajareQ 15.02.2008, 23:08:24
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #4





Goście







Możesz jeszcze zrobić rand() i potem switch z case'ami.

  1. <?
  2. $numer = rand(1,6);
  3.  
  4. switch ($numer) {
  5. case 1:
  6. $kolor = 'red';
  7. break;
  8. case 2:
  9.  $kolor = 'green';
  10. break;
  11. case 3:
  12. $kolor = 'blue';
  13. break;
  14. // itd.
  15. }
  16. ?>


PS. Za każdym razem jak będziesz miał jakiś problem, opisuj go w taki właśnie sposób, to na pewno zawsze sporo osób Ci chętnie pomoże. Brawo! ;]

Ten post edytował Wieviór 14.02.2008, 22:17:42
Go to the top of the page
+Quote Post
Grzyw
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Wiewiór, celowo zastosowałem tablicę, nie case'a, bo instrukcja warunkowa jest znacznie mniej wydajna od zwykłej tablicy. Po co zmuszać parser do wykonywania jakichkolwiek warunków, skoro alternatywnie można wyciągnąć konkretny element z tablicy?


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #6





Goście







Cytat(Grzyw @ 15.02.2008, 10:47:00 ) *
Po co zmuszać parser do wykonywania jakichkolwiek warunków, skoro alternatywnie można wyciągnąć konkretny element z tablicy?


Słusznie, ale nowicjuszom lepiej dawać więcej, bo się zawsze czegoś więcej mogą nauczyć. Co nie zmienia faktu, że tablica lepsza ;]
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: 20.08.2025 - 09:44