Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sortowanie po kolorze
benzulli
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


Witam

Mam pewien problem, mianowicie chciałbym posortować imiona osób, które są online, w tym celu używam takiej funkcji:

  1. $rows = mysql_query("SELECT * FROM people ORDER BY name ASC");
  2. while ($row = mysql_fetch_array($rows))
  3. {
  4. $name = $row['name'];
  5. if(preg_match("/$name/", $link)) {
  6. echo '<li><span style="color:green">'.$row['name'].'</span></li></br>';
  7. } else {
  8. echo '<li><span style="color:red">'.$row['name'].'</span></li></br>';
  9. }
  10. }


Mam listę 20 imion, która sortuje się alfabetycznie, tylko chciałbym, żeby rekordy o kolorze zielonym wyświetlały się pierwsze (osoby online), a następnie osoby o kolorze czerwonym (osoby offline). Stan osób online pobieram z cURLa, tak więc baza danych odpada.

Ten post edytował benzulli 14.08.2014, 14:47:54
Go to the top of the page
+Quote Post
pitu
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


W tej pętli zamiast wyświetlać wrzucaj nicki do tablic online i offline. W następnej pętli wyświetl najpierw osoby z tablicy online, następnie z offline.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Dodawaj do tablicy odpowiednio a potem wyświetlaj
Go to the top of the page
+Quote Post
Michael2318
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Zapisz sobie do tablicy te wszystkie rekordy:

  1. $arr_online = array();
  2. $arr_offline = array();
  3. while ($row = mysql_fetch_array($rows))
  4. {
  5. $name = $row['name'];
  6. if(preg_match("/$name/", $link)) {
  7. $arr_online[] = '<li><span style="color:green">'.$row['name'].'</span></li></br>';
  8. } else {
  9. $arr_offline[] = '<li><span style="color:red">'.$row['name'].'</span></li></br>';
  10. }
  11. }


I teraz wyświetl, najpierw tablicę z osobami online, potem z osobami offline:

  1. // wyświetlamy userów z tablicy ONLINE
  2. for($i=0; $i<=(count($arr_online)-1); $i++)
  3. {
  4. echo $arr_online[$i];
  5. }
  6.  
  7. // wyświetlamy userów z tablicy OFFLINE
  8. for($i=0; $i<=(count($arr_offline)-1); $i++)
  9. {
  10. echo $arr_offline[$i];
  11. }


Ten post edytował Michael2318 14.08.2014, 14:54:16
Go to the top of the page
+Quote Post
benzulli
post
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


Dzięki wszystkim.

Przez 2-3 lata piszę cos czasami w php, często szukam czegoś w internecie, po kilka godzin, lecz kiedy nie mogę natrafić na odpowiednią opcję wystarczy, że napiszę posta tutaj, a po chwili dostanę gotowy kod. Coś pięknego, wielkie dzięki, Panowie smile.gif


Ten post edytował benzulli 14.08.2014, 15:18:34
Go to the top of the page
+Quote Post
Michael2318
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


W sumie to można to zrobić jeszcze prościej:

  1. $arr_online = '';
  2. $arr_offline = '';
  3. while ($row = mysql_fetch_array($rows))
  4. {
  5. $name = $row['name'];
  6. if(preg_match("/$name/", $link)) {
  7. $arr_online .= '<li><span style="color:green">'.$row['name'].'</span></li></br>';
  8. } else {
  9. $arr_offline .= '<li><span style="color:red">'.$row['name'].'</span></li></br>';
  10. }
  11. }
  12.  
  13. echo $arr_online.$arr_offline;
Go to the top of the page
+Quote Post
benzulli
post
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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



A jeszcze jedno, np. jak bym chciał zrobić coś takiego:

1. <a href="strona.pl/index.php?name=michal">michal</a>
2. <a href="strona.pl/index.php?name=tomek">tomek</a>
3. <a href="strona.pl/index.php?name=ania">ania</a>

czyli ogólnie coś takiego

<a href="strona.pl/index.php?name=zmienna">zmienna</a>,
wcześniej mogłem coś takiego zrobić, a teraz?
Go to the top of the page
+Quote Post
Michael2318
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


No to robisz to po prostu wewnątrz tych zmiennych, np. to:

  1. $arr_online .= '<li><span style="color:green">'.$row['name'].'</span></li></br>';


zmieniasz na:

  1. $arr_online .= '<a href="strona.pl/index.php?name='.$zmienna.'">'.$zmienna.'</a>';


Ten post edytował Michael2318 14.08.2014, 15:29:02
Go to the top of the page
+Quote Post
benzulli
post
Post #9





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


Jeszcze raz dzięki, także za cierpliwość.
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: 19.08.2025 - 14:46