ugrás a tartalomhoz

Közösségi oldal segitség

SilentNightmare · 2010. Már. 29. (H), 17.27
Egy kis segítségre lenne szükségem.
Van egy adatbázis, amiben vannak a felhasználók.

Azt akarom megoldani, hogy betudják egymást ismerősnek jelölni.

Nincs semmi ötletem.

Esetleg hátha van valami egyszerű megoldás rá.
 
1

Ezt meg lehet oldani idegen

PHP-mókus · 2010. Már. 29. (H), 19.09
Ezt meg lehet oldani idegen kulccsal (foreing key), vagy ha azt nem ismered, minden felhasználóhoz csinálj egy olyan mezőt az adatbázisba, hogy "ismerősök", ill. "jelölt", amiben eltárolod az ismerős, és az ismerősnek jelölt személyek id-jét. Az adatlapok behívását pedig ezen id-k alapján meg tudod tenni.
2

Tyúúú :D

SilentNightmare · 2010. Már. 29. (H), 22.09
Az addig okés, hogy csinálok egy ismerősök és jelölt mezőt az adatbázisban, de ID-k alapján a behívást nem tudom megcsinálni.

Kezdő vagyok még, sorry :D

Amúgy az emberkéket email alapján azonosítom.
3

Szám szerint

janoszen · 2010. Már. 29. (H), 22.12
Egyrészt praktikusabb lenne szám szerint azonosítani, másrészt a join nyelvi elemnek nézz utána.
4

lekérdezés

PHP-mókus · 2010. Már. 30. (K), 11.46
A szám szerint azonosítás valóban biztonságosabb, igazgad van! De a tárolás és lekérdezés módján nem változtat sokat. Tegyük fel, hogy a következő az adatbázisod szerkezete:

id-----szam------nev-------ismert-------jelolt
1----1372----Kiss Nyúl--1371,1385---1375,1501


Lekéred pl. a 1372 azonosítójú személyhez tartozó ismert személyek számait:

$leker = mysql_query("SELECT `ismert` FROM 'tábla_neve' WHERE 'szám' = 1372");
$tomb = mysql_fetch_array($leker);

$ismertek = $tomb["ismert"];
Innentől csak szétszeded a kapott változót, és le tudod kérni pl. a hozzájuk tartozó nevet:

$ismert_tomb = explode(",", $ismertek);

for ($i = 0; $i < count($ismert_tomb); $i++)
  {
  $szam = $ismert_tomb[$i];
  
  $lekeres = mysql_query("SELECT `nev` FROM 'tábla_neve' 
     WHERE 'szam' = $szam");
  $nev_tomb = mysql_fetch_array($lekeres);
  $nev = $nev_tomb["nev"];
  }
A többi megvalósítása, és az adatlapok összerakása már csak a fantáziádon múlik :)
5

kapcsoló tábla

Thomas · 2010. Már. 30. (K), 19.21
A felsorolt megoldások abból a szempontból nem túl szerensések, hogy 700 ismerősnél már elég morcos mező jönne össze, arról nem is szólva, hogy PHP-mókus megoldásával 700 query futna le.
Használj két táblát inkább és akkor a státuszokat is be tudod kezelni:


$result = mysql_query('
SELECT 
    *
FROM 
    users 
WHERE 
    user_id IN (
		SELECT
                    IF(user_id = {$user['user_id']}, friend_id, user_id) as id
		FROM
	            users_friends 
		WHERE
		   (user_id = {$user['user_id']} OR friend_id = {$user['user_id']})
		AND fr_confirmed = 1
    )';

while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}

A kódot nem teszteltem, lehet benne elírás, de kb. így érdemes írni.
6

Tyúúú.

SilentNightmare · 2010. Már. 31. (Sze), 13.01
Hát az a baj, hogy ilyen szinten még nem értek a PHP-hoz.. Azt hittem egyszerűbb, de látom mégsem.
Köszönöm szépen a fáradozásaitokat.
7

Programozási nyelv

Poetro · 2010. Már. 31. (Sze), 13.11
Akkor olyan programozási nyelvben írd meg, amihez értesz. Bár szerintem magának a problémának semmi köze a PHP-hez, ugyanis nagy része adatbázis műveletekről szól, ami nem PHP, legfeljebb kapcsolódik hozzá.
De ha nem akarsz megismerkedni az adatbázisok szép világával, akkor írhatsz saját adattároló módszert, van rá kismilló mód, ugyanakkor valószínűleg nem lesz annyira hatékony mint egy kiforrott adatbázisos megoldás. És itt most nem csak RDBMS-re kell gondolni, léteznek másfajta adatbázisok is, lehet hogy a te problémádra éppen hatékonyabbak is.