Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Skrypt zaproszeń
Forum PHP.pl > Inne > Oceny
kamil_lk
Witam.
W ramach nauki napisałem sobie taki skrypt do zapraszania znajomych. Jest on jeszcze nie dopracowany, można powiedzieć, że jest on tylko poglądowy, aby sprawdzić czy mój sposób zadziała. Przejdźmy do sedna.
W bazie mam tabele:
USER:
- id
- login
- haslo
- imie
- nazwisko

Podczas rejestracji dodajemy do bazy USER użytkownika tworząc jednocześnie nową tabelę znajomi_login(login - zmienna z formularza), a więc każdy zarejestrowany user posiada swoją tabelę ze znajomymi, a wygląda ona tak:
ZNAJOMI_login:
- id
- login

## Zalogowany jako kamil
Po zalogowaniu mam możliwość wyszukiwania userów i zapraszania ich do znajomych. Podczas kliknięcia w 'Zaproś' dodajem interesującego nas usera do bazy znajomi_kamil gdzie przechowuje tylko jego login.

Jest również druga zakładka - 'Znajomi'
Po wejściu w nią ukazują mi się Ci userzy, których mam w bazie znajomi_kamil oraz oni mają mnie w swojej bazie znajomi_ktos

Brakuje jeszcze Skrzynki z wiadomościami, że ktoś mnie zaprasza, ale to mniejsza z tym...

Poniżej przedstawiam kod, proszę o opinię czy takie coś może być (proszę nie brać pod uwagę tego że jest to prymitywne, ponieważ jak już pisałem jest to tylko takie poglądowe)

Po zalogowaniu mamy dostęp do:
konto.php
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>Dokument bez tytu�u</title>
  8. </head>
  9.  
  10. <body>
  11. <?php
  12. if($_SESSION['zalogowany'] != 0){
  13. echo '<a href="?dzial=wyszukaj">Wyszukaj</a><br />';
  14. echo '<a href="?dzial=znajomi">Znajomi</a><br /><br />';
  15.  
  16. if($_GET['dzial'] == wyszukaj){
  17. echo '<form action="" method="post" >';
  18. echo '<input type="text" name="imie" size="45"/>';
  19. echo '<input type="submit" name="szukaj" value="szukaj" />';
  20. echo '</form>';
  21.  
  22. if(isset($_POST['szukaj'])){
  23. $imie = $_POST['imie'];
  24. $polacz = mysql_connect('localhost', 'root', '') or die("Brak polaczenia z MySQL!");
  25. mysql_select_db("zaproszenia");
  26. $zapytanie = mysql_query("SELECT * FROM `user` WHERE `imie` LIKE '%$imie%'");
  27. while($record = mysql_fetch_array($zapytanie)){
  28. echo $record['3']." ". $record['4']." <a href=zapros.php?login=".$record['1'].">Zaproś</a>";
  29. }
  30. }
  31. }
  32.  
  33. if($_GET['dzial'] == znajomi){
  34. $login = $_SESSION['login'];
  35. $polacz = mysql_connect('localhost', 'root', '') or die("Brak polaczenia z MySQL!");
  36. mysql_select_db("zaproszenia");
  37. //
  38. // wybieranie userów których zaprosiłem
  39. //
  40. $zapytanie = mysql_query("SELECT * FROM `znajomi_".$_SESSION['login']."`");
  41. while($record = mysql_fetch_row($zapytanie)){
  42. $tablica[] = $record['1'];
  43. }
  44.  
  45. //
  46. // sprawdzanie czy userzy, których ja mam w bazie znajomi_login również mają mnie w swojej bazie znajomi_login, jeśli tak to wyświetla mi userów z mojej bazy
  47. //
  48. $i=0;
  49. do{
  50. $zapytanie = mysql_query("SELECT * FROM `znajomi_".$tablica[$i]."` WHERE `login` LIKE '$login'");
  51. if(mysql_fetch_row($zapytanie)){
  52. echo $tablica[$i];
  53. }
  54. $i++;
  55. } while($i<count($tablica));
  56. }
  57. } else echo "<a href=index.php>Zaloguj</a>";
  58. ?>
  59. </body>
  60. </html>


zapros.php
  1. <?php
  2.  
  3. if($_SESSION['zalogowany'] != 0){
  4. $polacz = mysql_connect('localhost', 'root', '') or die("Brak polaczenia z MySQL!");
  5. mysql_select_db("zaproszenia");
  6. $login = $_GET['login'];
  7. $zapytanie = mysql_query("INSERT INTO znajomi_".$_SESSION['login']."(`id`, `login`) VALUES('', '$login')");
  8. } else echo "<a href=index.php>Zaloguj</a>";
  9. ?>
Poker
Moim zdaniem troszkę sobie całą sprawę utrudniasz.

Po co tworzyć nowe tabele i robić sobie syf w bazie?

Ja problem rozwiązałem w taki sposób:

Mam tabelę ZAPROSZENIA:

id
wyslane_przez (tutaj daję id uzytkownika)
wyslane_do (tutaj daję id osoby którą uzytkownik zaprasza)
zaakceptowane (domyślnie 0, jak osoba z "wyslane_do" zaakceptuje zmiana na 1 lub usunięcie wpisu i przeniesienie go do tabeli ZNAJOMI)

U mnie jeszcze jest podział na różnych znajomych (brat, siostra, kolega z podwórka, szkolna miłość) więc jest to troszkę bardziej rozbudowane, ale mniej więcej wygląda to w taki sposób.

Tabela ZNAJOMI to:
id
id_user1
id_user2

I wtedy po przejściu do znajomych szukam czy w TABELI ZNAJOMI(id_user1 lub id_user2) znajduje się ID osoby na którą oglądamy.

To tyle.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.