Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zaproś/usuń znajomych, proszę o porady
greg.paw.90
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


Witam szanownych forumowiczów (IMG:style_emoticons/default/smile.gif)
ostatnio coraz więcej pracuję w php/mysql. Myślę, że idzie mi coraz lepiej. Postanowiłem zrobić skrypt relacji między użytkownikami - mianowicie znajomi. W związku z tym chciałbym się Was poradzić.
Jeśli chodzi o dodaj znajomych to myślę że sobie poradzę. Chce zrobić to tak:
Użytkownik wchodzi do profilu osoby którą chce zaprosić i klika "Zaproś". Uruchamia się skrypt który przez GET pobiera id osoby, która ma zostać zaproszona. Potem w tabeli temp_invite stworzy się rekord z id(auto i key), id_osoby_zapraszajacej , id_osoby_zapraszanej , akcja(1 - przyjęte , 0 - odrzucone). Wtedy zostanie wysłane info(PM) do użytkownika, który został zaproszony. I jak zaakceptuje do do bazy zostaną dopisane id tych osób. Strukturę widzę tak: login,haslo,itp itd, znajomi i tu będą ID znajomych rozdzielone "||" takim znakiem. No i dodawanie i wyświetlanie raczej nie będzie stanowić problemu.
Problem dla mnie pojawia się z usunięciem znajomych. Może ktoś zechce mi poradzić jakby to zrobić? Myślałem, żeby zrobić w ten sposób:
pobieram rekordy i przez funkcje explode() rozbijam id znajomych, potem zliczam przez count() ile jest znajomych i pętlą for wyświetlam linki z opcją usuń.
  1. $znajomi = explode('||','$wiersz[10]');
  2. $ile = count($znajomi);
  3. for($i=0,$i==$ile,$i++){
  4. echo '<a href=usun="'.$link[$i].'">usun</a>';
  5. }

I ter bym zrobił sprawdzanie które id jest to usunięcia i przypisał do tego elementu tablicy wartość 0, np"
  1. $usun=$_GET['usun'];
  2. $znajomi = explode('||','$wiersz[10]');
  3. $ile = count($znajomi);
  4. for($i=0,$i==$ile,$i++){
  5. if($link[$i]==$link[$usun]){
  6. $link[$usun] = '0';
  7. }
  8. implode("||","$link[$i]");
  9. }


Pytanie czy to jest dobry sposób? Może macie jakieś inne pomysły. Będę bardzo wdzięczny.

Pozdrawiam i z góry dzięki za odp i porady (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Przede wszystkim Twój kod jest niezrozumiały i nieprawidłowy (co to jest $link?). Jeżeli chodzi o Twoją koncepcję, to chyba lepiej usuwać dane id z listy znajomych. Można to zrobić w taki sposób:
  1. if(isset($_GET['usun'] && $_GET['usun'] != '') {
  2. $usun = $_GET['usun'];
  3. $znajomi = explode('||', $wiersz['10']);
  4. $key = array_search($usun, $znajomi);
  5. unset($znajomi[$key]);
  6. $znajomi = implode('||', $znajomi);
Natomiast jeżeli chodzi o samą ideę, to nie wiem, czy jest to najlepsze rozwiązanie.
EDIT:
A jeśli chodzi o zaproszenia, to popieram propozycję bemola. No chyba, że chcielibyśmy np. zablokować możliwość ponownego zapraszania osób, które raz zaproszenie odrzuciły.

Ten post edytował mortus 19.03.2010, 10:48:51
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(mortus @ 19.03.2010, 10:45:19 ) *
Natomiast jeżeli chodzi o samą ideę, to nie wiem, czy jest to najlepsze rozwiązanie.

Napisałem wyraźnie i poradziłem, jak powinien swój kod zmodyfikować. Według mnie najlepiej mieć tabelę znajomi i tam łączyć w kolejnych rekordach konkretne id z id znajomych. Tymczasem pytanie o tabelę invite dotyczy samych zaproszeń, a nie konkretnej listy znajomych.
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 08:31