Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]edycja rekordow tylko wybranych
Forum PHP.pl > Forum > Przedszkole
qwe
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
osl
podstawy - prosty if z prostym warunkiem, do tego ewentualnie przekierowanie lub coś w tym guście... prostsze od tego co już masz winksmiley.jpg
qwe
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
osl
podpowiedź: poczytaj o instrukcjach warunkowych ("if") i o porównywaniu zmiennych. tyle wystarczy na dobry początek.
qwe
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 ?
 
marck
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!!");
}
qwe
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.