SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
13. 03. 2006. | #11 |
Boban Karišik
Expert
|
u php fajlu su u redu, ovde sam pisao kod, nisam copy/paste
|
13. 03. 2006. | #12 | |
old school
Professional
|
Citat:
Kôd:
CREATE OR REPLACE FUNCTION (varchar, varchar) ... SELECT COUNT(useruid) FROM users WHERE username='$1' AND password='$2'; ... Kôd:
$rezultat = pg_query($pgConnection, "SELECT checklogin('admin','admin')"); $count = pg_fetch_result($rezultat, 0, 'checklogin'); |
|
16. 03. 2006. | #13 |
Boban Karišik
Expert
|
heh, napredujem. Sada sam dobio ovakav error
SELECT query has no destination for result data Ja se izvinjavam sto gnjavim, da li moze neko da mi napise primer jedne funkcije koja izvlaci i printa sve rekorde iz tabele npr. useri, tabela ne mora da ima puno polja, dovoljna su i 2, samo da vidim kako! Ja sam ocigledno retard koji ne moze to da shvati bez primera koji funkcionise! Hvala! Poslednja izmena od Blood : 16. 03. 2006. u 19:30. |
17. 03. 2006. | #14 |
Ivan Dilber
Sir Write-a-Lot
|
Koliko se secam (ali nemam gde da probam), treba da se uradi nesto ovako:
Kôd:
CREATE OR REPLACE FUNCTION checklogin(varchar(100), varchar(40)) RETURNS integer AS $$ DECLARE -- deklarises promenjivu kojom vracamo rezultat br_rezult INTEGER; BEGIN -- Ovde su $1 i $2 argumenti prosledjeni proceduri -- Obrati paznju na INTO, stavljamo rezultat u promenjivu SELECT INTO br_rezult COUNT(useruid) FROM users WHERE username=$1 AND password=$2; -- vratimo rezultat RETURN br_rezult; END; $$ LANGUAGE plpgsql; Da bi se izbegla upotreba $1, $2 u izrazima i sl, moze da se koristi ALIAS, pogledaj help za tacnu sintaxu... Ovo je pisano iz glave, bez testiranje, pa ako baca neki error (sasvim moguce) javi, da vidimo sta cemo dalje
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 17. 03. 2006. u 07:42. |
17. 03. 2006. | #15 |
Boban Karišik
Expert
|
uh, ovo radi super, imam samo jos jedno pitanje..
ako zelim upit npr SELECT * FROM users to bi islo npr ovako Kôd:
CREATE OR REPLACE FUNCTION getall() RETURNS varchar AS $$ DECLARE all_users varchar; BEGIN SELECT INTO all_users * FROM users; RETURN all_users; END; $$ LANGUAGE plpgsql; $query = pg_query("SELECT getall() AS useri"); $result = pg_fetch_result($query,'useri')) i nece bas... Hvala! [edit]inace, gledao sam ALIAS, i mislim da mi nije trenutno potrebna, mozda kasnije kada bude bilo vise unosa u upit(10+)[/edit] Poslednja izmena od Blood : 17. 03. 2006. u 14:01. |
18. 03. 2006. | #16 |
Ivan Dilber
Sir Write-a-Lot
|
all_users nije varchar jer biras sva polja sa *, nego je valjda RECORD ili tako neki tip, ne secam se tacno kako se zove...pogledaj tipove koji postoje, ima jedan koji sluzi za cuvanje seta rezultata..
Izbaci ono 'AS useri' to ovde nije primenjivo jer ima vise polja u rezultatu i trebace ti pg_fetch_array() da uzmes te podatke, posto je jeli niz u pitanju...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
stored procedure brzina | _korso_ | SQL baze podataka - Sponzor: Baze-Podataka.net | 9 | 14. 04. 2008. 23:13 |