Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] - Nietypowy pomysł, Pytanie...
-Gość-
post
Post #1





Goście







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 :-).
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Możesz to trochę bardziej rozpisać? Bo temat wydaje się zbyt zamglony.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







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)
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
com
post
Post #5





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


  1. $first = ["key" => "wartosc" ];
  2. $second = ["key" => "wartosc" ];
  3.  
  4. if($first === $second)
  5. //todo


o to Ci chodzi?
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







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+
Go to the top of the page
+Quote Post
com
post
Post #7





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Cytat
to wyswietli, jeśli tylko jeden rekord (aaa lub bbb) ma a drugi niema to nie wyswietli.

jeszcze raz tongue.gif
Go to the top of the page
+Quote Post
-Gość-
post
Post #8





Goście







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.
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #9





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Rekurencja.
Raczej niełatwa do zaimplementowania w BD, bo nie do tego służą.
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


http://ideone.com/DbRboU
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #11





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
-Gość-
post
Post #12





Goście







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 to the top of the page
+Quote Post
-Gość-
post
Post #13





Goście







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.
Go to the top of the page
+Quote Post
com
post
Post #14





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


gdzie ty to w końcu chcesz sprawdzać ? jak bez powtórzeń to SELECT DISTINCT

Ten post edytował com 1.04.2014, 17:22:03
Go to the top of the page
+Quote Post
-Gość-
post
Post #15





Goście







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).
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  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 to the top of the page
+Quote Post
-Gość-
post
Post #17





Goście







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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:44