Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Formularz i blokowanie dopisywania do bazy., Jak stworzyć formularz który zablokuje możliwość dodania wpisu
hosti
post 13.03.2011, 23:29:41
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 2.02.2003
Skąd: P-zn

Ostrzeżenie: (0%)
-----


Witam serdecznie wszystkich forumowiczów.
Mam do Was ogromną prośbę o pokierowanie w temacie. Może najpierw opiszę co mam a później co powinienem mieć.
Otóż mam tak:
- małą bazę danych

  1. CREATE TABLE test (
  2. id int( 11 ) NOT NULL AUTO_INCREMENT ,
  3. imie varchar( 150 ) NOT NULL DEFAULT '',
  4. indeks varchar( 150 ) NOT NULL DEFAULT '',
  5. email varchar( 150 ) NOT NULL DEFAULT '',
  6. specjalnosc varchar( 150 ) NOT NULL DEFAULT '',
  7. DATA varchar( 150 ) NOT NULL DEFAULT '',
  8. PRIMARY KEY ( id )
  9. );


- formularz

  1. <select name="specjalnosc" id="specjalnosc" >
  2. <optgroup style="font-weight: bold;" id="tytul" label="Specjalnosc">
  3. <option value ="Profesor nr 1">Profesor nr 1</option>
  4. <option value ="Profesor nr 2">Profesor nr 2</option>
  5. <option value ="Profesor nr 3">Profesor nr 3</option>
  6. <option value ="Profesor nr 4">Profesor nr 4</option>
  7. <option value ="Profesor nr 5">Profesor nr 5</option>
  8. <option value ="Profesor nr 1">Profesor nr 1</option>
  9. <option value ="Profesor nr 1">Profesor nr 1</option>


Jak na razie wszystko ładnie zostaje zapisane do bazy i przez kolejną stronę wynik.php mam wyświetlone dane z bazy w postaci tabeli.
Problem polega na tym, że dla prof 1 możne się przypisać tylko 5 osób, a dla prof 2 np 10 a dla prof 3 tylko 7, itd...
I tu prosiłbym Was o pomoc. Jak mogę zrobić aby potencjalny Kowalski w momencie kiedy otworzy formularz widział, że do prof nr 1 zostały już tylko 2 miejsca?
I drugi problem, aby po wyczerpaniu "limitu" nie było możliwości się zapisania już do danego prof?

Będę bardzo wdzięczny za udzielenie pomocy.

Pozdrawiam hosti.

Ten post edytował hosti 13.03.2011, 23:30:25


--------------------
Pozdrawiam.
GG# 2100269 <img src="http://www.gadu-gadu.pl/users/status.asp?id=2100269" border="0">
Tlen: hosti@o2.pl <img src="http://status.tlen.pl/?u=hosti&t=1" width=18 height=18 border=0>
Go to the top of the page
+Quote Post
Croos22
post 13.03.2011, 23:48:03
Post #2





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

Ostrzeżenie: (0%)
-----


Z tego co zrozumiałem wystarczy jak zrobisz dodatkowe pole w tabeli w której będzie przechowywana liczba (limit) a następnie przy wysyłaniu formularza sprawdzaj instrukcją warunkową czy nie przekroczyło jeśli nie to dodaj do tego pola +1.
Go to the top of the page
+Quote Post
hosti
post 14.03.2011, 11:13:03
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 2.02.2003
Skąd: P-zn

Ostrzeżenie: (0%)
-----


Cytat(Croos22 @ 14.03.2011, 01:48:03 ) *
Z tego co zrozumiałem wystarczy jak zrobisz dodatkowe pole w tabeli w której będzie przechowywana liczba (limit) a następnie przy wysyłaniu formularza sprawdzaj instrukcją warunkową czy nie przekroczyło jeśli nie to dodaj do tego pola +1.

Tzn powinienem zrobić koleje pole w bazie o nazwie prof. i tu ich wszystkich wpisać i ustawić limity? Dobrze zrozumiałem?
Mi chodzi o to, że z listy rozwijanej w formularzu Kowalski ma kilka opcji, może się zapisać do prof1, 2 ,3 itd. tylko, że każdy z tych prof ma różne limity na zapisy. Do prof 1 może się zapisać tylko 5 kowalskich a do prof 2 tylko 7.

Ten post edytował hosti 14.03.2011, 11:13:47


--------------------
Pozdrawiam.
GG# 2100269 <img src="http://www.gadu-gadu.pl/users/status.asp?id=2100269" border="0">
Tlen: hosti@o2.pl <img src="http://status.tlen.pl/?u=hosti&t=1" width=18 height=18 border=0>
Go to the top of the page
+Quote Post
binbash
post 14.03.2011, 11:27:41
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 8
Dołączył: 28.12.2010
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Witam,

Może zrób tak, stwórz nowa tabele profesorowie z polami id | name | limit | current gdzie limit będzie określał maksymalną ilość profesorów danego typu w systemie, current aktualną ilość profesorów danego typu i potem zamiast pola specjalność stwórz pole profesorowie_id gdzie będziesz tworzył relacje do tabeli profesorowie.
Go to the top of the page
+Quote Post
hosti
post 14.03.2011, 13:05:00
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 2.02.2003
Skąd: P-zn

Ostrzeżenie: (0%)
-----


A czy jest może jakiś inny prostszy sposób odpytania ile już jest zapisanych ludzi?


--------------------
Pozdrawiam.
GG# 2100269 <img src="http://www.gadu-gadu.pl/users/status.asp?id=2100269" border="0">
Tlen: hosti@o2.pl <img src="http://status.tlen.pl/?u=hosti&t=1" width=18 height=18 border=0>
Go to the top of the page
+Quote Post
binbash
post 14.03.2011, 13:16:12
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 8
Dołączył: 28.12.2010
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


  1. SELECT specjalnosc, COUNT(*) AS ile FROM test GROUP BY specjalnosc;
Go to the top of the page
+Quote Post
Croos22
post 14.03.2011, 20:32:17
Post #7





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

Ostrzeżenie: (0%)
-----


Prostszego niż ja i binbash napisaliśmy to chyba już nie ma.

Dodaj do swojej tabeli jedno nowe pole typu int w której będziesz przechowywał liczbę.

Teraz gdy masz już pole możesz ustawić limit:

  1. <form action="" method="POST">
  2. <select name="ok" >
  3. <option value="[wybor]">wybierz</option>
  4. <option value="1">cos1</option>
  5. <option value="2">cos2</option>
  6. </select>
  7. <input type="submit" name="submit" value="Wyslij">
  8. </form>
  9.  
  10.  
  11. <?php
  12. if(isset($_POST['submit'])){
  13. $limit = 6;
  14. if($_POST['ok'] == 1)
  15. {
  16. if($limit <= 6){
  17. echo 'Liczba nie przekracza 6';
  18. }
  19. }
  20. }
  21. ?>


Zauważ w tym przypadku przypisałem do zmiennej $limit liczbę 6 ty zamiast tego użyj bazy. Koniecznie przetestuj kod który podesłałem.
Go to the top of the page
+Quote Post
hosti
post 15.03.2011, 11:44:54
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 2.02.2003
Skąd: P-zn

Ostrzeżenie: (0%)
-----


Super, dziękuję Wam bardzo, wrócę do domu wieczorem i przetestuję. Pewnie jeszcze kilka pytań się nasunie.


--------------------
Pozdrawiam.
GG# 2100269 <img src="http://www.gadu-gadu.pl/users/status.asp?id=2100269" border="0">
Tlen: hosti@o2.pl <img src="http://status.tlen.pl/?u=hosti&t=1" width=18 height=18 border=0>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 01:54