Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] jak przestawic wartosci pola w zapytaniu
AndyPSV
post
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


MAM TAKI KOD (wycinek)

  1. (SELECT *,COUNT(*) AS cnt FROM `'.PRFX.'pm` WHERE '.$sql2.' GROUP BY t,_from ORDER BY id DESC LIMIT '.($pg*$PER_PG).','.$PER_PG.')


I chce przestawic fragment, gdzie wartosci:

_from -> aby przybralo wartosc _to (przy wyciaganiu z bazy)
(i odwrotnie)
_to -> aby przybralo wartosc _from

jest to skomplikowane zapytanie UNION i musze przestawic te wartosci przy wyciaganiu, aby zostaly pogrupowane tak jak tego chce ---- jak to zrobic?

nikt nie wie?

poprzez przestawienie wartosci rozumiem zamienienie (_from przyjmuje wartosc _to i odwrotnie), to wszystko

moze to cos wyjasni
http://img263.imageshack.us/i/tablename.gif/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
AlexDeLarge
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


  1. SELECT ... _to AS _from, _from AS _to FROM ... WHERE ...

?
Tylko musisz pamiętać, że w GROUP BY, WHERE, itd. także będą zamienione. Możesz też wykorzystać zmienne tymczasowe, np.
  1. SELECT @temp_to:=_to ... WHERE @temp_to > 0

(or sth).
Go to the top of the page
+Quote Post
AndyPSV
post
Post #3





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


  1. $sql = '_to = '.$this->u['id']; $sql2 = '_from = '.$this->u['id'];
  2.  
  3. $q = q('(SELECT *,COUNT(*) as cnt FROM `'.PRFX.'pm` WHERE '.$sql.' GROUP BY t,_from ORDER BY id DESC LIMIT '.($pg*$PER_PG).','.$PER_PG.')
  4. UNION ALL
  5. (SELECT *,COUNT(*) as cnt FROM `'.PRFX.'pm` WHERE '.$sql2.' GROUP BY t,_from ORDER BY id DESC LIMIT '.($pg*$PER_PG).','.$PER_PG.')');


to pierwsze nie zdaje egzaminu - wywala blad (sprawdzalem juz to wczesniej, trzeba uzyc innej metody), natomiast co do drugiego - w jaki sposob zastosowac to w drugim zapytaniu (i przypisac te zmienne w srodku zapytania)?

potrzebuje dokladnie takiej procedury w SQL; wie ktos jak to napisac?

  1. _to = _temp
  2. _to = (gets the value of) _from
  3. _from = _temp;


nikt nie wie?

Jak dostac w zapytaniu:

SELECT *,COUNT(*) as cnt FROM `biz_pm` WHERE _from = 42 GROUP BY t,_from ORDER BY id DESC LIMIT 0,25

I get:

_to = '1'
_from = '42'

What I want to get, instead is (in this query):

_from = '1'
_to = '42'

Ten post edytował AndyPSV 28.02.2011, 21:22:31
Go to the top of the page
+Quote Post

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: 17.09.2025 - 13:29