Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]edycja rekordow tylko wybranych
qwe
post 15.06.2009, 14:36:20
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Witam

Mam skrypt formularza, za pomocą którego klient może edytować swoje zamówienie wraz z danymi (to nie jest cały formluarz tylko jego część)

  1. <?php
  2. <form action="edit.php" method="post">
  3. imie klienta:<br />
  4. <input type="text" name="klient" /><br />
  5. ilosc produktów klasy A:<br />
  6. <input type="text" name="produkt_A" /><br />
  7. ilosc produktow klasy B :<br />
  8. <input type="text" name="produkt_B" /><br />
  9. <input type="submit" value="zmien" />
  10. </form>
  11. ?>





no i skrypt edit.php

  1. <?php
  2.  
  3. $db = 'localhost'; 
  4. $db_user = ''; 
  5. $db_pass = '';         
  6. $db_name = ''; 
  7.  
  8. if(!$db_lnk = mysql_connect("$db", "$db_user", "$db_pass")){
  9.  echo("Problem z połącznieniem z bazą danych!");
  10. }
  11.  
  12. if(!@mysql_select_db("$db_name")){
  13.  echo("Problem z połącznieniem z bazą danych!");
  14. }
  15. $klient = $_POST["klient"];
  16. $produkt_A = $_POST["produkt_A"];
  17. &produkt_B = $_POST["produkt_B"];
  18. $query = "update xxxxx set produktA='$produkt_A', produktB = '$produkt_B' where klient='$klient' ";
  19.  
  20.  if(!$result = mysql_query($query)){
  21.      @mysql_close();
  22.      echo "Problem z połączeniem z bazą danych!";     
  23.  }
  24.   if($query)echo 'Uaktualniono rekord';
  25.     else      echo 'Błąd ';
  26.  
  27. ?>




Tylko, że gdy nie wypełnie pola produkt_A to w bazie nic się nie zapisuje a poprzedni rekord jest kasowany.

Chciałbym aby w przypadku gdy np produkt_A nie został wpisany w formularzu nie został również zaktualizowany w bazie danych. Tylko nie wiem jak tego można dokonać.



Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
osl
post 15.06.2009, 14:38:42
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


podstawy - prosty if z prostym warunkiem, do tego ewentualnie przekierowanie lub coś w tym guście... prostsze od tego co już masz winksmiley.jpg
Go to the top of the page
+Quote Post
qwe
post 15.06.2009, 14:53:00
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


domyślam się, że to podstawy..nie znam php ten kod wyżej skleiłem z 3 różnych na swoje potrzeby

no ale dziekie będę szukał dalej
Go to the top of the page
+Quote Post
osl
post 15.06.2009, 14:55:30
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


podpowiedź: poczytaj o instrukcjach warunkowych ("if") i o porównywaniu zmiennych. tyle wystarczy na dobry początek.
Go to the top of the page
+Quote Post
qwe
post 15.06.2009, 18:17:56
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Osl a mógłbyś mi tak teoretycznie napisac jakby miała wyglądać ta opcja bo nie umiem sobie tego wyobrazić. Co z czym mam porównać.

Bo mi chodzi o to aby - jeśli w formularzu nie wpiszę nowej ilości produktu_A czyli zostawie puste pole to, żeby w bazie danych nie nadpisał rekordu odpowiadającego za produkt_A.

Przy tym zapisie 

  1. <?php
  2. $query = "update xxxxx set produktA='$produkt_A', produktB = '$produkt_B' where klient='$klient' ";
  3. ?>


jeśli zostawię puste pole dla któregos produktu to w bazie nadpisze się wartością z formularza czyli skasuje rekord bo w formularzu będzie puste pole.

Jeśli zrobię w skrypcie coś w stylu -
  1. <?php
  2. if(produkt_A=='')
  3. ?>
to jak to wmontować w zapytanie aby pominęło i nie nadpisało questionmark.gif

Czy jeszcze o coś innego chodzi ?
 
Go to the top of the page
+Quote Post
marck
post 15.06.2009, 18:26:35
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 27.05.2008

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


Prosta sprawa. Użyj funkcji empty. np.:

CODE
if((!empty($zmienna1)) && (!empty($zmienna2))){

echo"Tu muszę wstawić instrukcje, które wykonam, gdy zmienne nie są puste, np Update";
}else{
die("zmienna: $zmienna1 lub zmienna: $zmienna2 są puste. Wypełnij wszystkie pola!!");
}


Ten post edytował marck 15.06.2009, 18:27:05
Go to the top of the page
+Quote Post
qwe
post 15.06.2009, 18:53:52
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Marck ale mi właśnie chodzi, że może zostać puste pole w formularzu...

np w bazie dla rekordu zmienna1 jest wartość w tabeli 33 

ktoś wypełnia formularz ale zostawi puste pole dla zmienna1 - i teraz przy wykonaniu Update aby nie zmieniło 33 na puste w bazie tylko pozostawiło 33 bez zmiany




już sobie poradziłem - temat do zamknięcia

Ten post edytował qwe 15.06.2009, 20:38:47
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: 16.07.2025 - 04:01