Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][sql] Blokada pola w bazie na czas edycji
kozioł
post
Post #1





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


Witam , walczę od jakiegoś czasu z nielada problemem , i nie mam juz pomysłów

więc tak:


mam formularz dzieki któremu uzytkownik uzupełnia bazę , w bazie sql wcześniej są zapisane "NUMER" , oraz numer "HDW".

Formularz składa się z dwóch części , uzytkownik wybiera "HDW" klika szukaj, co powiduje że w jednym z pól formularza wyświetla sie "NUMER" potem uzytkownik dopisuje jakieś tam dane , klika wyślij , i dane lecą do skryptu który robi update danego pola należącego do "NUMER". Ale jest problem , bo może się zdażyć że dwóch użytkowników zaloguje się i w tym samym czasie wybierze ten sam numer "HDW" , i zostanie wyświetlone to samo na dwóch różnych komputerach. Pomyślałem że zrobię dodatkową kolumnę "MARK" (tak ją nazwałem) , i podaczs (klknięciu szukaj) "HDW" jednocześnie dopiszę się w polu "MARK" jedynka należąc a do pola "NUMER" któr ma się wyświetlić i juz było by ok , bo w warunku podczas wyświetlania danych dodał bym że to pole musi byc puste.

ale jest problem bo w skrypcie mojego formularza nigdzie nie ma tej wartości "NUMER" jest tylko numer "HDW" , a tylko po wartości "NUMER" mogę zamarkować polę w bazię , bo inaczej bez żadnego warunku zaznaczaja mi sie wszystkie pola w bazie w kolumnie MRK.


Czy macie jakiś pomysł na rozwiązanie tego problemu / , będę ogromnie wdzięczny


ps.

tak pobieram numer z bazy który wyświetla się w formularzu ,

  1. <?php
  2. $q = "SELECT * FROM baza WHERE rezultat =''AND HDW = '$HDW' GROUP BY numer LIMIT 1 ";
  3. $wynik = mysql_query($q);
  4. while ($wiersz = mysql_fetch_array($wynik)) {
  5. echo '' . $wiersz['numer'] .'';
  6. ?>



pozdrawiam

Ten post edytował drPayton 4.12.2007, 17:05:33
Powód edycji: Przeniosłem tagi na początek tematu @drPayton
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
srwsio
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.01.2005
Skąd: Szczecin

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


podaj kod to ci go zmienię
ale zasada taka :
1) dodajesz kolumnę mark ( pole będzie przyjmowało wartość 1 lub 0 )
2) modyfikujesz zapytanie pobierające pole numer wg hdw - czyli pobierasz NUMER jeśli pole mark będzie miało wartośc 0 , jeśli przyjmie jedynkę wyświetl odpowiedni komunikat
3) dodajesz do zapytania równiez cos takiego jak : jeśli pobieram pole HDW nr 2 to pole mark update na 1
4) przy zapisie zwolnij pole mark update na 0
i to wszystko - najprostszy moim zdaniem sposób
  1. <?php
  2. $q = "SELECT * FROM baza WHERE rezultat ='' AND HDW = '$HDW' AND MARK='0' GROUP BY numer LIMIT 1 ";
  3. // jeśli pole mark jest pełne wartość 1 wtedy pojawi ci się błąd
  4. $wynik = mysql_query($q) or die(mysql_error());;
  5.  
  6. //dodajemy zapytanie zmieniające kolumne MARK
  7. $r = "UPDATE baza SET mark=1 [WHERE HDW='$HDW']";
  8. $markujemy = mysql_query($r) or die(mysql_error());
  9.  
  10. while ($wiersz = mysql_fetch_array($wynik)) {
  11. echo '' . $wiersz['numer'] .'';
  12.  
  13. //przy zapisie daj , ustawi ci pole mark znów na 0 czyli można edytować
  14. $r = "UPDATE baza SET mark=0 [WHERE HDW='$HDW']";
  15. $wynik = mysql_query($r) or die(mysql_error());
  16. ?>


Ten post edytował srwsio 4.12.2007, 16:19:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 08:47