![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
Otóż mam w MySQL tabelkę "grupy" W pliku php, który wyświetla grupy z tej tabelki w pętli, mam pod każdymi danymi grupy button "dołącz do grupy". No i oczywiście działa mi ładnie pięknie - kiedy wcisnę przycisk dodaje użytkownika do tej grupy. Ale teraz mam problem, co zrobić żeby po dodaniu ten przycisk zniknął u usera i pojawił się np przycisk "usuń mnie z grupy" (który też wiem jak zrobić). Chodzi mi tylko jaki warunek napisać, żeby wyświetlił się ten albo ten button? Myślałem nad pętlą for, która sprawdzała by po prostu czy w tabeli danej grupy nie ma id użytkownika. Problem właśnie polega na tym że w tabeli grupy może być więcej niż jeden user więc trudno mi będzie porównać np pole "czlonek_grupy" do id usera zalogowanego. Od początków jestem samoukiem, mam nadzieję że ktoś zrozumiał o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował nospor 20.12.2007, 11:05:12 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 1 Dołączył: 19.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
tabela grup
CREATE TABLE `mk_groups` ( `group_id` tinyint(3) unsigned NOT NULL auto_increment, `group_name` varchar(100) NOT NULL default '', //nazwa grupy `group_description` varchar(200) NOT NULL default '', //opis grupy `group_avatar` varchar(100) NOT NULL default '0', //obrazek PRIMARY KEY (`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; a w tej tabeli poniżej zapisuje mi użytkowników CREATE TABLE `mk_groups_joined` ( `join_id` tinyint(5) unsigned NOT NULL auto_increment, `group_id` tinyint(5) NOT NULL, // id grupy `join_user` tinyint(5) NOT NULL, // zapisuje id usera ktory sie podlaczyl `join_name` varchar(30) NOT NULL, //zapisuje imie usera (malo istotne) PRIMARY KEY (`join_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ; Skrypt przedstawiony poniżej wyświetla mi grupy i button "dodaj mnie do grupy" i jest on pisany pod extreme-fusion 4.10 <?php /* MOD grupy */ require_once "maincore.php"; require_once "subheader.php"; require_once "side_left.php"; include LOCALE.LOCALESET."members-profile.php"; include LOCALE.LOCALESET."user_fields.php"; if (file_exists(LOCALE.LOCALESET."members-profile-mod.php")) { include LOCALE.LOCALESET."members-profile-mod.php"; } else { include LOCALE."English/members-profile-mod.php"; } if (iMEMBER) { if (isset($_GET['lookup']) && isNum($_GET['lookup'])) define('lookup', $_GET['lookup']); if (isset($_GET['group_id']) && isNum($_GET['group_id'])) define('group_id', $_GET['group_id']); $result = dbquery("SELECT * FROM mk_groups LIMIT 0 , 30"); while ($dgdata = mysql_fetch_array($result)) if (isset($_POST['join'])) { $wynik = dbquery("INSERT INTO ".$db_prefix."groups_joined VALUES ('', '".$dgdata['group_id']."', '".$userdata['user_id']."', '".$userdata['user_name']."')"); } if ($wynik) { echo "<font size='3'>Zapisano do grupy!</font>"; } if (isset($_POST['unjoin'])) { $wynik2 = dbquery("DELETE FROM ".$db_prefix."groups_joined WHERE join_user='".$userdata['user_id']."'"); } if ($wynik2) { echo "<font size='3'>Wypisano z grupy!</font>"; } opentable("Grupy"); echo "<table><tr><td class='tbl7'>Oto dostępne grupy, stwórz własną i zapraszaj innych.<br> Opcje: <a href='grupy_dodaj.php'>dodaj grupę</a></td></tr></table>"; closetable(); opensidex("Lista"); echo "<table width='100%'>"; $result = dbquery("SELECT * FROM mk_groups LIMIT 0 , 30"); while ($gdata = mysql_fetch_array($result)) //robi z tabeli tablice grupy { $zapytanie = dbquery("SELECT * FROM mk_groups_joined WHERE group_id='".$gdata['group_id']."'"); $udata = mysql_fetch_array($zapytanie); echo "<tr><td class='tbl1' rowspan='2'><img src='images/grupy/".$gdata['group_avatar']."' width='100' height='100'></td><td class='tbl2' width='100%'><font size='4'>".$gdata['group_id'].". ".$gdata['group_name']."</font></td></tr><tr><td class='tbl2'>".$gdata['group_description']."</td></tr><tr><td class='tbl2' colspan='2'>Należą: ".$udata['join_user']."</td></tr><tr><td class='tbl2' colspan='3'>"; echo "<form id='form' name='userform' method='post' action='".FUSION_SELF."'>"; if (warunek) { echo "<input type='submit' name='unjoin' value='wypisz się' class='button'>"; } else { echo "<input type='submit' name='join' value='dołącz się' class='button'>"; } echo "</form><hr></td></tr>"; } echo "</table>"; } closesidex(); require_once "side_right.php"; require_once "footer.php"; ?> a tak to wygląda na "żywca" (IMG:http://www.mkoszalin.eu/tabe.jpg) Ten post edytował reyne 20.12.2007, 00:23:31 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Kod $zapytanie = dbquery("SELECT * FROM mk_groups_joined WHERE group_id='".$gdata['group_id']."'"); $udata = mysql_fetch_array($zapytanie); Przede wszystkim, to zapytanie zwróci tylko jeden wiersz (pierwszy który spełnia warunki) czyli tylko jednego usera. Zatem lista osób które należą do grupy będzie wyświetlała tylko jedną osobę (Należą: ".$udata['join_user']."). Żeby pobrać wszystkich użytkowników, musisz zapytanie przepuścić np. przez while (jak w przypadku zapytania do tabeli mk_goups). Będziesz miał wtedy nazwy użytkownika wszystkch osób zapisanych do grupy... oraz tablicę z ID użytkowników. Teraz wystarczy sprawdzić czy bieżący użytkownik (domyślam się że to $userdata['user_id']) należy do tej tablicy. Kod $users_id = array(); while($udata = mysql_fetch_array($zapytanie) { $users_in_group .= $udata["join_name"]." "; // oczywiscie teraz "Należą: $udata['join_user']" zamien na "Należą: $users_in_group." $users_id[] = $udata["join_user"]; } A warunek którego szukasz wyglądać będzie: Kod if(in_array($userdata['user_id'], $users_id)) { echo "<input type='submit' name='unjoin' value='wypisz się' class='button'>"; } else { echo "<input type='submit' name='join' value='dołącz się' class='button'>"; } Pozdrawiam! Ten post edytował Nattfarinn 20.12.2007, 08:42:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 06:55 |