#include #include #include "func.h" #include "/usr/include/pgsql/libpq-fe.h" #define HOSTNAME "direct" #define USERNAME "cez" #define PASSWORD "ala" #define DBNAME "cez" void html_init() { printf("Content-type: text/html\n"); } void html_przenies(char *gdzie,char *l) { printf(" ",l,gdzie); } void html_naglowek(char *tytul) { printf("\n\t\n"); if (tytul!=NULL) { printf("\t\t%s\n",tytul); } printf("\t\n"); } void html_koniec() { printf("\t\n\n"); } void ksiazki_winetka() { printf("
Wszystkie Dodaj Nowa Szukaj
"); } void znajomi_winetka() { printf("
Wszystkie Dodaj Nowa Szukaj
"); } void ksiazki_tabelka(PGresult *res) { int i,j,nFields; printf("\n"); nFields = PQnfields(res); printf("\t"); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 1; j < 6; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\n"); } printf("
TytułImieNazwiskoTypRok
\n\t\t%s\n\t\n\t\tEdytuj\n\t\n\t\tUsuń\n\t\n\t\tPożycz\n\t
\n"); } void znajomi_tabelka(PGresult *res) { int i,j,nFields; printf("\n"); nFields = PQnfields(res); printf("\t"); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 0; j < nFields; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\n"); } printf("
NRZImieNazwiskoTelefonEmailAdresNick
\n\t\t%s\n\t\n\t\tEdytuj\n\t\n\t\tUsuî\n\t
\n"); } void dhtml_strona(const char *strona) { char *query; char *stala="select body from html where name='", *stala1="';"; int nFields; int i,j; PGconn *conn; PGresult *res; query=(char *)malloc((strlen(strona)+40)*(sizeof(char))); strcpy(query,stala); if (strona!=NULL) { strcat(query,strona); } strcat(query,stala1); conn = PQsetdbLogin("direct","5432", NULL,NULL, "cez","cez","ala"); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } nFields = PQnfields(res); for (i = 0; i < PQntuples(res); i++) { for (j = 0; j < nFields; j++) printf("%-15s", PQgetvalue(res, i, j)); printf("\n"); } PQfinish(conn); free(query); } void znajomi_pokaz(const char *strona) { char *query="select * from znajomi"; int nFields; int i,j; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek(""); znajomi_tabelka(res); html_koniec(); PQfinish(conn); free(query); } void ksiazki_pokaz(const char *strona) { char *stala="select nrk,tytul,imie,nazwisko,typ,rok from ksiazki", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } if (strona!=NULL) { w=(licz_znak(strona)+100); query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query," where nrk="); strcat(query,strona); } else { query=(char *)malloc(100*sizeof(char)); strcpy(query,stala); } res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("Wszystkie Ksiązki"); ksiazki_winetka(); ksiazki_tabelka(res); html_koniec(); PQfinish(conn); free(query); } void ksiazki_edytuj(const char *nrk) { char *stala="select * from ksiazki where nrk=", *stala2=";", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(nrk)+50; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); if (nrk!=NULL) { strcat(query,nrk); } else { exit(10); } strcat(query,stala2); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); ksiazki_winetka(); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n",PQgetvalue(res,0,0),PQgetvalue(res,0,0)); printf("\n",PQgetvalue(res,0,1)); printf("",PQgetvalue(res,0,2)); printf("\n",PQgetvalue(res,0,3)); printf("\n",PQgetvalue(res,0,4)); printf("\n"); printf("
NRK

%s

Tytuł
Imie i Nazwisko Auotra ",PQgetvalue(res,0,6)); printf("
Rok
Typ
\n"); html_koniec(); PQfinish(conn); free(query); } void znajomi_edytuj(const char *nrz) { char *stala="select nrz,nick,imie,nazwisko,telefon,email,adres from znajomi where nrz=", *stala2=";", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(nrz)+150; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); if (nrz!=NULL) { strcat(query,nrz); } else { exit(10); } strcat(query,stala2); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); znajomi_winetka(); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n",PQgetvalue(res,0,0),PQgetvalue(res,0,0)); printf("\n",PQgetvalue(res,0,1)); printf("",PQgetvalue(res,0,3)); printf("\n",PQgetvalue(res,0,4)); printf("\n",PQgetvalue(res,0,5)); printf("\n",PQgetvalue(res,0,6)); printf("\n"); printf("
NRZ

%s

Nick
Imie i Nazwisko ",PQgetvalue(res,0,2)); printf("
Telefon
Email
Adres
\n"); html_koniec(); PQfinish(conn); free(query); } void znajomi_dodaj(const char *imie, const char *nazwisko, const char *telefon, const char *email, const char *adres, const char *nick) { char *query; char *stala="insert into znajomi(imie,nazwisko,telefon,email,adres,nick) values (", *stala1=");"; int nFields; int i,j,w; PGconn *conn; PGresult *res; w=(strlen(imie)+strlen(nazwisko)+strlen(telefon)+strlen(email)+strlen(adres)+strlen(nick)+100); query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,"'"); if (imie!=NULL) { strcat(query,imie); } strcat(query,"','"); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,"','"); if (telefon!=NULL) { strcat(query,telefon);} strcat(query,"','"); if (email!=NULL) { strcat(query,email);} strcat(query,"','"); if (adres!=NULL) { strcat(query,adres);} strcat(query,"','"); if (nick!=NULL) { strcat(query,nick); } strcat(query,"'); "); conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res = PQexec(conn, query ); html_przenies("program.cgi?strona=znajomi_dodaj&typ=static","3"); printf("

%s",PQerrorMessage(conn)); html_koniec(); PQfinish(conn); free(query); } void ksiazki_dodaj(const char *tytul, const char *imie, const char *nazwisko, const char *rok, const char *typ) { char *stala="insert into ksiazki(tytul,imie,nazwisko,rok,typ) values ('", *stala1=");", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; w=licz_znak(imie)+licz_znak(nazwisko)+licz_znak(tytul)+licz_znak(rok)+licz_znak(typ)+100; fprintf(stderr,"liczba znakow %d\n",w); query=(char*)malloc( w * sizeof(char) ); if (query==NULL) { fprintf(stderr,"nie zaalokowalem pamieci\n"); exit(10); } strcpy(query,stala); if (tytul!=NULL) { strcat(query,tytul);} strcat(query,"','"); if (imie!=NULL) { strcat(query,imie); } strcat(query,"','"); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,"','"); if (rok!=NULL) { strcat(query,rok);} strcat(query,"','"); if (typ!=NULL) { strcat(query,typ);} strcat(query,"'); "); conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res = PQexec(conn, query ); html_naglowek("Wynik SQL"); html_przenies("program.cgi?strona=ksiazki_dodaj&typ=static","3"); printf("

%s",PQerrorMessage(conn)); html_koniec(); PQfinish(conn); free(query); } void ksiazki_zmien(const char *nrk, const char *tytul, const char *imie, const char *nazwisko, const char *rok, const char *typ) { char *stala="update ksiazki set ", *stala2=";", *imie1=" imie='", *nazwisko1="',nazwisko='", *tytul1="',tytul='", *rok1="', rok='", *typ1="',typ=' ", *where="' where nrk=", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(imie)+licz_znak(nazwisko)+licz_znak(typ)+licz_znak(tytul)+licz_znak(rok)+200; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,imie1); if (imie!=NULL) { strcat(query,imie); } strcat(query,nazwisko1); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,tytul1); if (tytul!=NULL) { strcat(query,tytul); } strcat(query,rok1); if (rok!=NULL) { strcat(query,rok); } strcat(query,typ1); if (typ!=NULL) { strcat(query,typ);} strcat(query,where); if (nrk!=NULL) { strcat(query,nrk);} else { fprintf(stderr,"Blad Przekazania NRK->KSIAZKI_ZMIEN");exit(10);} strcat(query,stala2); printf("QUERY=%s",query); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); printf("\n"); nFields = PQnfields(res); printf("Padło pytanie %s",query); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 0; j < nFields; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\n"); } printf("
\n\t\t%s\n\t
\n"); html_koniec(); PQfinish(conn); free(query); } void znajomi_zmien(const char *nrz,const char *imie,const char *nazwisko,const char *telefon ,const char *email,const char *adres,const char *nick) { char *stala="update znajomi set ", *stala2=";", *imie1=" imie='", *nazwisko1="',nazwisko='", *telefon1="',telefon='", *adres1="', adres='", *email1="', email=' ", *nick1="' , nick=' ", *where="' where nrz=", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(imie)+licz_znak(nazwisko)+licz_znak(adres)+licz_znak(email)+licz_znak(telefon)+licz_znak(nick)+300; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,imie1); if (imie!=NULL) { strcat(query,imie); } strcat(query,nazwisko1); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,telefon1); if (telefon!=NULL) { strcat(query,telefon); } strcat(query,email1); if (email!=NULL) { strcat(query,email); } strcat(query,adres1); if (adres!=NULL) { strcat(query,adres);} strcat(query,nick1); if (nick!=NULL) { strcat(query,nick);} strcat(query,where); if (nrz!=NULL) { strcat(query,nrz);} else { fprintf(stderr,"Blad Przekazania NRZ->ZNAJOMI_ZMIEN");exit(10);} strcat(query,stala2); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); printf("\n"); nFields = PQnfields(res); printf("Padło pytanie %s",query); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 0; j < nFields; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\n"); } printf("
\n\t\t%s\n\t
\n"); html_koniec(); PQfinish(conn); free(query); } void znajomi_szukaj(const char *imie, const char *nazwisko, const char *email, const char *nick) { char *stala="select * from znajomi where ", *stala2=";", *imie1=" imie like '%", *nazwisko1=" and nazwisko like '%", *email1=" and email like '%", *nick1=" and nick like '%", *apostrof="%' ", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(imie)+licz_znak(nazwisko)+licz_znak(nick)+licz_znak(email)+200; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,imie1); if (imie!=NULL) { strcat(query,imie); } strcat(query,apostrof); strcat(query,nazwisko1); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,apostrof); strcat(query,email1); if (email!=NULL) { strcat(query,email); } strcat(query,apostrof); strcat(query,nick1); if (nick!=NULL) { strcat(query,nick); } strcat(query,apostrof); strcat(query,stala2); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); printf("\n"); nFields = PQnfields(res); printf("Padło pytanie %s",query); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 0; j < nFields; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\n"); } printf("
\n\t\t%s\n\t
\n"); html_koniec(); PQfinish(conn); free(query); } void ksiazki_szukaj(const char *tytul, const char *nazwisko, const char *rok, const char *typ) { char *stala="select nrk,tytul,imie,nazwisko,rok,typ from ksiazki where ", *stala2=";", *tytul1=" tytul like '%", *nazwisko1=" and nazwisko like '%", *rok1=" and rok like '%", *typ1=" and typ like '%", *apostrof="%' ", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(tytul)+licz_znak(nazwisko)+licz_znak(rok)+licz_znak(typ)+200; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,tytul1); if (tytul!=NULL) { strcat(query,tytul); } strcat(query,apostrof); strcat(query,nazwisko1); if (nazwisko!=NULL) { strcat(query,nazwisko); } strcat(query,apostrof); strcat(query,rok1); if (rok!=NULL) { strcat(query,rok); } strcat(query,apostrof); strcat(query,typ1); if (typ!=NULL) { strcat(query,typ); } strcat(query,apostrof); strcat(query,stala2); res = PQexec(conn, query ); if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) { printf("Blad wywolania %s bo
%s",query,PQerrorMessage(conn)); PQclear(res); PQfinish(conn); exit(1); } html_naglowek("EDYCJA REKORDU"); ksiazki_tabelka(res); html_koniec(); PQfinish(conn); free(query); } void znajomi_usun(char *nrz) { char *stala="delete from znajomi where nrz=", *stala2=";", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin("direct","5432", NULL,NULL, "cez","cez","ala"); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(nrz)+40; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,nrz); strcat(query,stala2); res = PQexec(conn, query ); html_przenies("program.cgi?strona=znajomi_pokaz&typ=dynamic","1"); znajomi_winetka(); printf("Rekord nr.%s - został usniety z bazy" ,nrz); html_koniec(); PQfinish(conn); free(query); } void ksiazki_usun(char *nrk) { char *stala="delete from ksiazki where nrk=", *stala2=";", *query; int nFields; int i,j,w; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } w=licz_znak(nrk)+40; query=(char *)malloc(w*sizeof(char)); strcpy(query,stala); strcat(query,nrk); strcat(query,stala2); if (nrk!=NULL) {res = PQexec(conn, query );} html_przenies("program.cgi?strona=ksiazki_pokaz&typ=dynamic","1"); ksiazki_winetka(); printf("Rekord nr.%s - został usniety z bazy" ,nrk); html_koniec(); PQfinish(conn); free(query); } void ksiazki_pozyczaj(const char *ktora) { int nfileds,i,j; char *znajomi="select nick,imie,nazwisko from znajomi;"; char *ksiazki="select nrk,tytul,imie,nazwisko,rok,typ from ksiazki where nrk="; char *query; PGconn *conn; PGresult *res; query=(char *)malloc(sizeof(char)*(licz_znak(ktora)+licz_znak(ksiazki))); strcpy(query,ksiazki); if (ktora!=NULL) { strcat(query,ktora); } else { exit(10); } /*Przypadek gdyby ktoś omyłkowo lub umyślnie nie podal wartości*/ conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } html_naglowek("Poczyczanie Cz.1"); res = PQexec(conn, query); ksiazki_tabelka(res); res = PQexec(conn, znajomi); printf(""); printf("
Wybierz pole cechujące tylko jednego znajomego , jeżeli jedno pole nie wystarczy skorzystaj z kilku naraz (wybrane pole bedzie posiadalo wszystkie z podanych atrybutów)
"); printf(""); printf(""); printf("
Nick\nImie\nNazwisko\n
"); printf("",ktora); printf(""); printf(""); printf(" "); printf(""); PQfinish(conn); } void ksiazki_wypozycz(const char *nick, const char *imie, const char *nazwisko, const char *nrk) { char *stala=" select nrz from znajomi where "; char *stala2="update ksiazki set pozyczone="; char *stala3=" where nrk="; char *query; char liczba[10]; PGconn *conn; PGresult *res; query=(char *)malloc(sizeof(char)+(licz_znak(nick)+ licz_znak(imie)+ licz_znak(nazwisko)+ licz_znak(nrk)+ licz_znak(stala)+200)); strcpy(query,stala); if (strcmp(nick,"Brak")!=0) { strcat(query," nick='"); strcat(query,nick); strcat(query,"'"); } if (strcmp(nazwisko,"Brak")!=0) { if (strcmp(nick,"Brak")!=0) { strcat(query," and ");} strcat(query," nazwisko='"); strcat(query,nazwisko); strcat(query,"'"); } if (strcmp(imie,"Brak")!=0) { if ((strcmp(nick,"Brak")!=0)||(strcmp(nazwisko,"Brak")!=0)) { strcat(query," and ");} strcat(query," imie='"); strcat(query,imie); strcat(query,"'"); } strcat(query," ;"); conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza cez nieudane.\n"); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res=PQexec(conn,query); html_naglowek(""); strcpy(liczba,PQgetvalue(res,0,0)); free(query); query=(char *)malloc(sizeof(char)+(licz_znak(stala2)+ licz_znak(stala3)+ licz_znak(nrk)+10)); strcpy(query,stala2); strcat(query,liczba); strcat(query,stala3); strcat(query,nrk); strcat(query," ;"); PQexec(conn,query); free(query); PQfinish(conn); html_przenies("program.cgi?strona=ksiazki_pokaz&typ=dynamic","1"); } void ksiazki_pozyczone_pokaz() { PGconn *conn; PGresult *res; int i,j,nFields; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); if (PQstatus(conn) == CONNECTION_BAD) { printf("Polaczenie z baza '%s' nieudane.\n", DBNAME); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } res=PQexec(conn,"select ksiazki.nrk,ksiazki.tytul,znajomi.imie,znajomi.nazwisko where ksiazki.pozyczone=znajomi.nrz;"); html_naglowek(""); printf("\n"); nFields = PQnfields(res); printf("\t"); for (i = 0; i < PQntuples(res); i++) { printf("\n"); for (j = 1; j < 4; j++) printf("\t\n", PQgetvalue(res, i, j)); printf("\t\n", PQgetvalue(res, i, 0)); printf("\n"); } printf("
TytułImieNazwisko
\n\t\t%s\n\t\n\t\tOddaj\n\t
\n"); html_koniec(); } void ksiazki_oddaj(const char *nrk) { char *query; char *stala="update ksiazki set pozyczone=NULL where nrk="; PGconn *conn; PGresult *res; conn = PQsetdbLogin(HOSTNAME,"5432", NULL,NULL, DBNAME,USERNAME,PASSWORD); query=(char *)malloc(sizeof(char)*(licz_znak(nrk)+100)); strcpy(query,stala); if (nrk!=NULL) { strcat(query,nrk);} else { exit(10); } strcat(query,";"); res=PQexec(conn,query); html_przenies("program.cgi?strona=ksiazki_pozyczone_pokaz&typ=dynamic","1"); html_koniec; }