Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] - Nietypowy pomysł
Forum PHP.pl > Forum > Przedszkole
Gość
Robię sobie taki projekt jak "Drugie konto", potwierdzenie że to konto jest drugiej danej osoby musi się odbyć z dwóch stron żebym mógł pobrać listę multi kont, jak to mogę zrobić?, pomysł pewnie był kiedyś lecz niewiem jak takie coś się nazywa, nie obraże się jeśli ktoś skieruje mnie do google :-).
Sephirus
Możesz to trochę bardziej rozpisać? Bo temat wydaje się zbyt zamglony.
Gość
Cytat(Sephirus @ 1.04.2014, 13:02:28 ) *
Możesz to trochę bardziej rozpisać? Bo temat wydaje się zbyt zamglony.


jasne, to był tylko przykład,
jeśli klucz->wartosc2 == klucz2->wartość to wyswietli, jak to zrobić? (jeśli któryś z kluczy nie będzie miał jako wartość nazwy drugiego klucza to go nie wyswietli)
b4rt3kk
Cytat(Gość @ 1.04.2014, 14:11:09 ) *
jasne, to był tylko przykład,
jeśli klucz->wartosc2 == klucz2->wartość to wyswietli, jak to zrobić? (jeśli któryś z kluczy nie będzie miał jako wartość nazwy drugiego klucza to go nie wyswietli)


Dalej nie wiadomo o co chodzi.
com
  1. $first = ["key" => "wartosc" ];
  2. $second = ["key" => "wartosc" ];
  3.  
  4. if($first === $second)
  5. //todo


o to Ci chodzi?
Gość
Cytat(b4rt3kk @ 1.04.2014, 13:37:19 ) *
Dalej nie wiadomo o co chodzi.


to inaczej
  1. nick varchar(32),
  2. nick2 varchar(32)

Jeśli osoba o nicku "aaa" ma dane:
nick-aaa, nick2-bbb
a osoba "bbb" ma dane:
nick-bbb, nick2-aaa
to wyswietli, jeśli tylko jeden rekord (aaa lub bbb) ma a drugi niema to nie wyswietli. Dodam że rekordów może być 300+
com
Cytat
to wyswietli, jeśli tylko jeden rekord (aaa lub bbb) ma a drugi niema to nie wyswietli.

jeszcze raz tongue.gif
Gość
Cytat(com @ 1.04.2014, 13:49:03 ) *
jeszcze raz tongue.gif


Jeśli rekord o `nick`:'aaa', `nick2`:'bbb',
a rekord2 o `nick`:'bbb', `nick2`:'aaa'
to je wyswietli, jeśli jeden z rekordów nie spełni warunku (rekord o nicku aaa lub bbb) to pominie je, i sprawdzi kolejne rekordy czy mają na wzajem na przykład
`nick`->'nick3', `nick2`->'nick4', `nick`->'nick4', `nick2`->'nick3' rekordów może być 300-nie przekorczy (chyba) 4000.
mmmmmmm
Rekurencja.
Raczej niełatwa do zaimplementowania w BD, bo nie do tego służą.
com
http://ideone.com/DbRboU
b4rt3kk
Jeśli dobrze rozumiem to chcesz wyświetlić osoby, które mają ze sobą sparowane konta? Wystarczy tutaj takie zapytanie:

  1. SELECT t1.nick, t1.nick2 FROM tabela t1
  2. JOIN tabela t2 ON t2.nick = t1.nick2 AND t2.nick2 = t1.nick
Gość
Cytat(b4rt3kk @ 1.04.2014, 15:24:34 ) *
Jeśli dobrze rozumiem to chcesz wyświetlić osoby, które mają ze sobą sparowane konta? Wystarczy tutaj takie zapytanie:

  1. SELECT t1.nick, t1.nick2 FROM tabela t1
  2. JOIN tabela t2 ON t2.nick = t1.nick2 AND t2.nick2 = t1.nick


kod działa poprawnie ALE...
wyświetla:
aaa bbb
bbb aaa

zwykły if php będzie tu najlepszy żeby nie powtarzało jak coś już jest (tylko w odwrotnej kolejności) ?
Gość
Cytat(Gość @ 1.04.2014, 16:10:58 ) *
kod działa poprawnie ALE...
wyświetla:
aaa bbb
bbb aaa

zwykły if php będzie tu najlepszy żeby nie powtarzało jak coś już jest (tylko w odwrotnej kolejności) ?


przepraszam za spam ale niemam opcji edycji postu, if ($tablica['nick'].$tablica['nick2'] != $tablica['nick2'].$tablica['nick'])
- wiem że wyszlem na d... ale takie coś nie działa biggrin.gif bardzo proszę o pomoc., niemam innych pomysłów.
com
gdzie ty to w końcu chcesz sprawdzać ? jak bez powtórzeń to SELECT DISTINCT
Gość
Cytat(com @ 1.04.2014, 17:21:30 ) *
gdzie ty to w końcu chcesz sprawdzać ? jak bez powtórzeń to SELECT DISTINCT


jeśli chodzi w czym (php czy mysql) to obojętnie, tam gdzie szybciej ;-), a SELECT DISTNICT próbowałem już.. i nadal
aaa bbb
bbb aaa
zamiast
aaa bbb
(i jak duplikat to nic więcej).
trueblue
  1. SELECT CONCAT(LEAST(t1.nick,t2.nick),GREATEST(t1.nick,t2.nick)) AS nazwa_laczna,t1.nick, t1.nick2 FROM tabela t1
  2. JOIN tabela t2 ON t2.nick = t1.nick2 AND t2.nick2 = t1.nick
  3. GROUP BY nazwa_laczna
Gość
Cytat(trueblue @ 1.04.2014, 18:03:44 ) *
  1. SELECT CONCAT(LEAST(t1.nick,t2.nick),GREATEST(t1.nick,t2.nick)) AS nazwa_laczna,t1.nick, t1.nick2 FROM tabela t1
  2. JOIN tabela t2 ON t2.nick = t1.nick2 AND t2.nick2 = t1.nick
  3. GROUP BY nazwa_laczna


Działa, dziękuje za pomocną odpowiedź oraz także innym za poświęcenie czasu.
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.