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 |
|
09. 03. 2006. | #1 |
Boban Karišik
Expert
|
Hvala... Ovo je pomoglo
@ivanhoe: sintaksa jeste tacna |
13. 03. 2006. | #2 | |
Boban Karišik
Expert
|
uh, ja sam napisao ovu proceduru:
Kôd:
CREATE OR REPLACE FUNCTION checklogin() RETURNS integer AS $$ DECLARE user varchar(100); pass varchar(40); BEGIN SELECT COUNT(useruid) FROM users WHERE username='user' AND password='pass'; END; $$ LANGUAGE plpgsql; Kôd:
$query = pg_query("SELECT checklogin(admin,admin);); Citat:
|
|
13. 03. 2006. | #3 |
član
Na probnom radu
|
Ja sam se sa ovime zezao u ASP/MSSQL varijanti, tako da je sintaksa malkice drugacija, ali verovatno ti ne treba SELECT tamo gde pozivas proceduru iz koda vec EXEC ili nesto slicno.
|
13. 03. 2006. | #4 |
Boban Karišik
Expert
|
ne ne ne, koliko sam ja shvatio ovako se poziva procedura u postgre-u iz php-a
select ime_procedure(); problem je sto ne znam kako da mu uvezem variablu, u ovom slucaju username i password!? |
13. 03. 2006. | #5 |
član
Na probnom radu
|
Ok, onda necu da nagadjam sta ne znam... samo, jesi siguran da su ti navodnici u redu? Sad vidim da si otvorio i nisi zatvorio.
|
13. 03. 2006. | #6 |
Boban Karišik
Expert
|
u php fajlu su u redu, ovde sam pisao kod, nisam copy/paste
|
13. 03. 2006. | #7 | |
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. | #8 |
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 18:30. |
17. 03. 2006. | #9 |
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 06:42. |
17. 03. 2006. | #10 |
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 13:01. |
|
|
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. 22:13 |