<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Kilka problemów]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1194&amp;type=atom"/>
	<updated>2012-01-09T12:12:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1194</id>
		<entry>
			<title type="html"><![CDATA[Odp: Kilka problemów]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3344#p3344"/>
			<content type="html"><![CDATA[1. Rozwiązałem. 

Dla potomnych, odpowiednie zapytanie powinno wyglądać tak:


$sql="SELECT  idgoscia,imie,nazwisko,uczelnia,temat FROM goscie WHERE specjalnosc='".$_POST['specj']."'";

Dzięki temu zmienna jest traktowana jak zwykły string.

2. Jednak zdecyduję się na JavaScript. Lepiej, żeby "w czasie rzeczywistym" dane były sprawdzane, a nie przy każdym odświeżaniu strony. Jeśli ktoś popełni kilka razy błąd może się zacząć irytować.

3. Wielkie dzięki, działa cudnie.

Czyli problemy rozwiązane :)

Pozdrawiam.]]></content>
			<author>
				<name><![CDATA[sowus]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1335</uri>
			</author>
			<updated>2012-01-09T12:12:17Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3344#p3344</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Kilka problemów]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3343#p3343"/>
			<content type="html"><![CDATA[2. Z poziomu bazy danych możesz ustawić klauzulę NOT NULL dla kolumny, której wartości mają być niepuste, ew. dla typów tekstowych możesz zrobić ograniczenie CHECK np. kolumna text CHECK kolumna <> '' przy definicji (Create) albo można to załatwić jednym alter'em.

3. To zależy jak masz zdefiniowaną kolumnę, jeżeli ustawisz typ całkowity np. bigint, to cyfry będą musiały być "z automatu", dla typów tekstowych np. char(11) możesz zrobić ograniczenie Check np. pesel char(11) Check (pesel ~ '[0-9]{11}') ew. jeżeli ma być sprawdzana poprawność (suma kontrolna etc.), to chyba najlepszym wyjściem byłoby utworzenie własnego typu.]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2012-01-09T10:36:51Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3343#p3343</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Kilka problemów]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3342#p3342"/>
			<content type="html"><![CDATA[Witam,

Jestem zupełnym laikiem jeśli chodzi o Postgre i mam 3 problemy.
Ten problem powinien znaleźć się w innym dziale, ale chciałem, żeby wszystko było w jednym.

1. Zczytanie informacji z formularza HTML, wysłanie danych do serwera SQL i wyświetlenie informacji na stronie. 

Wpisuję np. Kierowca i wyświetla mi na stronie wszystkich Kierowców jakich mam w bazie. 

Obecnie posiadam takie zapytanie, które oczywiście jest złe. 

$sql="SELECT idgoscia,imie,nazwisko,uczelnia,temat FROM goscie WHERE spec=$_POST['specj']"; 

I teraz moje pytanie. Czy z poziomu PHP da się coś takiego zrobić, czy po stronie serwera SQL muszę stworzyć funkcję/wyzwalacz ? Jeśli to funkcję/wyzwalacz to w jakiej postaci on będzie wyglądał i w jaki sposób z poziomu PHP do takiej funkcji się odwołać ?

(Funkcje i wyzwalacze są dla mnie obce, w sensie takim, że nie umiem za bardzo ich tworzyć). 

2. Blokowanie przesyłania pustych danych. 

W formularzu HTML istnieją również inne pola, które podczas przesyłania mają być blokowane jeśli dane są puste. 
Wiem, że takie coś bez problemu da się zrobić w PHP i JavaScript, jednak czy jest możliwość zrobienia tego z poziomu bazy danych i wywaleniu na stronie błędu o tym, że dane nie są pełne ? 

3. Coś podobnego do 2 tyle tylko, że funkcja musi sprawdzić, czy dane przesłane są numeryczne (numer PESEL). 
Gdzieś czytałem, żeby napisać funkcję, która tekst napisany w polu PESEL zamieni na numeric i sprawdzi, czy wszystkie znaki są cyframi. Jeśli nie, to wywalenie błędu na stronie

Czy również taką funkcję (lub coś podobnego) mógłby ktoś dla mnie zbudować ? 

Z góry serdecznie dziękuję.]]></content>
			<author>
				<name><![CDATA[sowus]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1335</uri>
			</author>
			<updated>2012-01-09T10:07:32Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3342#p3342</id>
		</entry>
</feed>
