|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
wyciaganie danych a sortowanie |
Autor |
Wiadomość |
pierzu
Posty: 22
|
Wysłany: 16-10-2007, 11:03 wyciaganie danych a sortowanie
|
|
|
hmm nie mam pomyslu jak zrobic pewna rzecz, chodzi mi o wyciagniecie z jednej tabeli id uzytkownikow ktorzy spelniaja jeden warunek (naleza do grupy o id 3), nastepnie wyciagnac kilka pol z danymi uzytkownikow z innej tabeli (sa to dodatkowe pola zrobione przeze mnie) posiadajacych id ktore wczesniej wyciagnalem oraz posortowac wg pola (sa to tabele forum opartym na phpbb by przemo).
jak narazie robie to tak:
1. wypisuje to tablicy id uzytkownikow ktorzy spelniaja warunek (ktorzy naleza do grupy)
2. wyciagam z bazy danych i wypisuje na stronie dane uzytkownikow z id ktore mam w tablicy
tylko pytanie jak to posortowac wg jednego pola?
nie wiem moze nie potrafie sie skupic, ostatnio mam z tym problem
podam przyklady kodu:
1.
Kod: | $wybierz = "SELECT `user_id` FROM `phpbb_user_group` WHERE `group_id`=3";
$zapytanie = mysql_query($wybierz);
$i=0;
$id_uzytk=array();
while ($wiersz = mysql_fetch_row($zapytanie))
{
$id_uzytk[$i]=$wiersz[0];
$i++;
} |
2.
Kod: | for($i=0; $i < count($id_uzytk); $i++)
{
$wybierz = "SELECT `user_field_1`, `user_field_2`, `user_field_5`, `user_field_4` FROM `phpbb_users` WHERE `user_id`='".$id_uzytk[$i]."'";
$zapytanie = mysql_query($wybierz);
$wiersz = mysql_fetch_row($zapytanie);
$num=$i+1;
if($wiersz[3]<0) { $wiersz[3]=0; }
echo '<tr><td>'.$num.'</td><td>'.$wiersz[0].'</td><td>'.$wiersz[1].'</td><td>'.$wiersz[2].'</td><td>'.$wiersz[3].'</td></tr>';
} |
|
|
|
|
|
Gadatliwa Kasia
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1974
|
Wysłany: 16-10-2007, 11:12
|
|
|
Do sortowania wyników służy "ORDER BY klucz ASC/DESC"
np
Kod: | $wybierz = "SELECT `user_field_1`, `user_field_2`, `user_field_5`, `user_field_4` FROM `phpbb_users` WHERE `user_id`='".$id_uzytk[$i]."' ORDER BY user_field_1 DESC"; |
|
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
pierzu
Posty: 22
|
Wysłany: 16-10-2007, 11:16
|
|
|
Cytat: | Do sortowania wyników służy "ORDER BY klucz ASC/DESC" |
to ja wiem, ale to mi nic nie posortwuje bo wyciagam dane kazdego uzytkownika oddzielnie, przeanalizuj moj kod |
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1974
|
Wysłany: 16-10-2007, 13:20
|
|
|
no tak, myśle że powinieneś spróbować wydobyć wszystko co chcesz jednym zapytaniem a nie dwoma
Kod: | $sql = "SELECT ug.group_id
FROM (" . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g)
WHERE ug.user_id = " . $user_id . "
AND g.group_id = ug.group_id
AND g.group_single_user = 0
AND ug.user_pending <> 1
ORDER BY g.group_order ASC"; |
to jest fragment z includes/usercp_viewprofile.php
trzeba go tylko przerobić na coś mniej więcej takiego:
Kod: | $sql = "SELECT u.user_field_1, u.user_field_2, u.user_field_5, u.user_field_4, u.username
FROM (" . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g)
WHERE g.group_id = ID_GRUPY
AND g.group_id = ug.group_id
AND g.group_single_user = 0
AND u.user_id = ug.user_id
AND ug.user_pending <> 1
ORDER BY u.user_field_1 ASC"; |
Nie sprawdzałem czy to działa ale będziesz miał przynajmniej punkt zaczepienia |
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,06 sekundy. Zapytań do SQL: 12 | |
|
|