Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak przestawic wartosci pola w zapytaniu
Forum PHP.pl > Forum > PHP
AndyPSV
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/
AlexDeLarge
  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).
AndyPSV
  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'
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.