Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wybrany kolor dla wybranej grupy userów, zalogowanych
Lejto
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


Jak zrobić takie coś? Jest sobie lista zalogowanych userów i chce aby np. jest sobie user Stachu i ma on 33 postów więc nick "Stachu" jest napisany czcionką czerwoną i wszyscy zalogowani co maja więcej niż 30 postów są napisani czcionka czerwona i tak samo z innymi ci co maja np. po 20 są na żółto. Jak to zrobić? Wybrany kolor przypisać do danego usera w bazie czy if edytujący ciągi znaków? A może:
  1. <?php
  2. echo "<font color='.$kolor.'>Stachu</font>";
  3. ?>


Ten post edytował Lejto 27.12.2007, 19:45:26
Go to the top of the page
+Quote Post
xbigos
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

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


Kod
if($ile_postow > 29){
$kolor = "red";
}
else{
$kolor = "black";
}

potem sobie dodajesz else if.
A masz informacje o grupach i kolorach grup przetrzymywane w bazie?
Go to the top of the page
+Quote Post
Lejto
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


mam tylko liczbę postów
grupy jak by sie dało chciałem zrobić na ifach ale chyba będę je miał w bazie
Go to the top of the page
+Quote Post
Fishu
post
Post #4





Grupa: Zarejestrowani
Postów: 192
Pomógł: 13
Dołączył: 16.11.2007
Skąd: Żory

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


Lepiej zrobić w grupach bo też wystarczą ify (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a jak nie masz grup no to tak jak podał poprzedni kolega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. if($ile_postow >= 20)
  3. $color="yellow";
  4. else if($ile_postow >= 30)
  5. $color="red";
  6. else
  7. $color="#000000";
  8. ?>

Jeżeli postów jest 20 lub więcej to kolor żółty
Jeżeli postów jest 30 lub więcej to kolor czerwony
Jeżeli nie pasuje do pozostałych to kolor czarny
Oczywiście te opisy są dla newbie. Ale radziłbym ci zrobić grupy i ify przydzielające do grup (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
xbigos
post
Post #5





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

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


@fishu nie dawaj mu badziewia.
dla 100 kolor też jest żółty.
  1. <?php
  2. $ile_postow = 19;
  3. if($ile_postow < 20)//jesli mniejsze od 20 to kolor = zółty
  4. {
  5. $color="yellow";
  6. }
  7. else if($ile_postow >= 20)// jesli wieksze lub równe 20 kolor = czerwony
  8. {
  9. $color="red";
  10. }
  11. ?>


a tutaj masz cos o operatorach porównania zeby było CI troche łatwiej warunki poznać.
http://www.egrafik.pl/kurs-php/operators.comparision.php

Ten post edytował xbigos 27.12.2007, 20:38:44
Go to the top of the page
+Quote Post
Lejto
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


znam operatory porównania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ale przeczytać nie zaszkodzi
Go to the top of the page
+Quote Post
xbigos
post
Post #7





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

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


Jeśli chcesz jakąś pomoc to opisz dokładnie problem i coś się wyskrobie. Jutro w pracypewnie bede sie nudził więc napisze cos:) własnie pracuje nad systemem użytkowników wraz z grupami do mojej www ale na troche innej zasadzie bedzie to wszystko działać.
Go to the top of the page
+Quote Post
Lejto
post
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


@xbigos na jakiej zasadzie?
Go to the top of the page
+Quote Post
xbigos
post
Post #9





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

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


2 tabele
---
1. grupy
2. uzytkownik

kazdy uzytkownik po osiagniciu jakiejs liczby wypowiedzi otrzymuje jakas range. rangi specjalne. no i oczywiscie prawa dostępu dla grup, dla odpowiednich podstron. Lubie wszystko mieć w bazie.
Go to the top of the page
+Quote Post
Lejto
post
Post #10





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


i nie działa nie wyświetla prawidłowych kolorów błąd w zapytaniu mam ale nie wiem gdzie liczbę postów zapisuje bo bazy jak sie ktoś zaloguje kod
  1. <?php
  2. ........
  3.  
  4.  while($zapytaj_o_online1 = mysql_fetch_assoc($query5)) 
  5. {  
  6. $sql = "SELECT * FROM kto_online"; 
  7. $query = mysql_query($sql);
  8. $rows = mysql_num_rows($query);
  9. $row = mysql_fetch_array($query);
  10.  
  11. $ile_postow = $row[postow];
  12. if($ile_postow < 20)//jesli mniejsze od 20 to kolor = zółty
  13. {
  14. $color="yellow";
  15. }
  16. else if($ile_postow >= 20)// jesli wieksze lub równe 20 kolor = czerwony
  17. {
  18. $color="red";
  19. }
  20.  
  21. //dalsza część 
  22.  
  23. echo "<font color=$color>";
  24. echo ($zapytaj_o_online1['nick']);
  25.  echo "</font>";
  26. echo ', ';
  27. }
  28. ?>

zapytanie chyba jest złe bo jak np. zapisze 1 usera do kto_online z 2 postami powinna się jego nazwa na żółto pokazać i tak jest a jak zapisze 2 usera z 66 postami to jego nazwa powinna sie na czerwono pokazać a tez sie pokazuje na żółty

nie wiecie gdzie jest błąd?

to trzeba w jakiejś pętli umieści? nie w tej while
  1. <?php
  2. $sql = "SELECT * FROM kto_online"; 
  3. $query = mysql_query($sql);
  4. $rows = mysql_num_rows($query);
  5. $row = mysql_fetch_array($query);
  6.  
  7. $ile_postow = $row[postow];
  8. if($ile_postow < 20)//jesli mniejsze od 20 to kolor = zółty
  9. {
  10. $color="yellow";
  11. }
  12. else if($ile_postow >= 20)// jesli wieksze lub równe 20 kolor = czerwony
  13. {
  14. $color="red";
  15. }
  16. ?>

czy where dać?
pomóżcie!

Ten post edytował Lejto 28.12.2007, 20:06:30
Go to the top of the page
+Quote Post
Hazel
post
Post #11





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Jeśli w tabeli kto_online masz na pewno kolumnę postow, to powinno działać bez zarzutu, wiec upewnij się. Sprawdzaj za pomoca echo lub var_dump, co zawiera zmienna $ile_postow w odpowiednich miejscach kodu.

edit: jeśli masz więcej niż jednego usera w tabeli kto_online (więcej niż jeden rekord, to powinna być pętla, najczęściej while):
  1. <?php
  2. $sql = "SELECT * FROM kto_online"; 
  3. $query = mysql_query($sql);
  4. while ($row = mysql_fetch_array($query))
  5. {
  6. $ile_postow = $row[postow];
  7. if($ile_postow < 20)//jesli mniejsze od 20 to kolor = zółty
  8. {
  9. $color="yellow";
  10. }
  11. else if($ile_postow >= 20)// jesli wieksze lub równe 20 kolor = czerwony
  12. {
  13. $color="red";
  14. }
  15.  // tutaj dajesz echo i wyświetlasz nick usera
  16. }
  17. ?>


Ten post edytował Hazel 31.12.2007, 18:37:00
Go to the top of the page
+Quote Post
Lejto
post
Post #12





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


nic z tego nadal źle wyświetla
Cytat
zapytanie chyba jest złe bo jak np. zapisze 1 usera do kto_online z 2 postami powinna się jego nazwa na żółto pokazać i tak jest a jak zapisze 2 usera z 66 postami to jego nazwa powinna sie na czerwono pokazać a tez sie pokazuje na żółty
Go to the top of the page
+Quote Post
Hazel
post
Post #13





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Cytat
Sprawdzaj za pomoca echo lub var_dump, co zawiera zmienna $ile_postow w odpowiednich miejscach kodu.

I napisz, co Ci wyszło z tego sprawdzania. Bez tego ani rusz, bo kod jest niby poprawny.

Ten post edytował Hazel 31.12.2007, 20:12:12
Go to the top of the page
+Quote Post
Lejto
post
Post #14





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


var_dump poprawnie wyświetla dane muszę mieć gdzies błąd w skrypcie
edit: dam jeszcze kod:
  1. <?php
  2. {
  3.  $sql = "SELECT * FROM kto_online"; 
  4. $query = mysql_query($sql);
  5. while ($row = mysql_fetch_array($query))
  6. {
  7. $ile_postow = $row[postow];
  8. if($ile_postow < 20)//jesli mniejsze od 20 to kolor = zółty
  9. {
  10. $color="yellow";
  11. }
  12. else if($ile_postow >= 20)// jesli wieksze lub równe 20 kolor = czerwony
  13. {
  14. $color="red";
  15. }
  16.  
  17. var_dump($ile_postow);  // tutaj dajesz echo i wyświetlasz nick usera
  18. }
  19.  
  20.  
  21. while($zapytaj_o_online1 = mysql_fetch_assoc($query5)) 
  22. {  
  23.  
  24.  
  25. echo "<font color=$color>";
  26.  echo ($zapytaj_o_online1['nick']);
  27.  echo "</font>";
  28. echo ', ';
  29. }
  30. ?>

edit a jak
  1. <?php
  2. echo "<font color=$color>";
  3. ?>
wywaliłem z while i wstawiłem pomiędzy petle to tylko 1 usera koloruje

Ten post edytował Lejto 4.01.2008, 18:22:30
Go to the top of the page
+Quote Post

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: 23.08.2025 - 06:17