Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Mysql] Update nie działa
jacus24
post
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 15.12.2007

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


Mam taki kod
  1. <?php
  2. if (isset($_POST['submit']) && $_POST['submit'] == "Uaktualnij") {
  3.  
  4. $query_update = "UPDATE user_info SET 
  5.  first_name = '" . $_POST['first_name'].
  6.  "', email = '" . $_POST['email'].  
  7.  "', state = '" . $_POST['state'].
  8.  "', city = '" . $_POST['city'].
  9.  "', wiek = '" . $_POST['wiek'].
  10.  "', waga = '" . $_POST['waga'].
  11.  "', wzrost = '" . $_POST['wzrost'].
  12.  "', jestem = '" . $_POST['jestem'].
  13.  "', aktualnie = '" . $_POST['aktualnie'].
  14.  "', chcialbym = '" . $_POST['chcialbym'].
  15.  "', lubie = '" . $_POST['lubie'].
  16.  "', nie_lubie = '" . $_POST['nie_lubie'].
  17.  "', szukam = '" . $_POST['szukam'] . 
  18.  "' WHERE username = '" . $_SESSION['user_logged'] . 
  19.  "' AND password = '" . $_SEESION['user_password'] . "'";
  20.  
  21. $result_update = mysql_query($query_update)
  22. or die(mysql_error());
  23.  
  24. $query = "SELECT * FROM user_info WHERE id = '" . $_POST['id'] . "'";
  25. $result = mysql_query($query)
  26. or die(mysql_error());
  27. ?>

Tylko nie nadpisuje nowych danych
Dałem tam przecinki bo jesli mam kropki to nie wyśietla mi wogule formularza gdzie można wpisac dane a z przecinkami jest.
Po dodaniu
  1. <?php
  2. echo $query_update;
  3. ?>

Daje
  1. <?php
  2. UPDATE user_info SET first_name = '', email = '', state = '', city = '',
  3. wiek = '', waga = '', wzrost = '', jestem = '', aktualnie = '', chcialbym = '' ,
  4. lubie = '', nie_lubie = '', szukam = '', WHERE username = 'ktos' AND password = 'cos'
  5. Dane profilu zostały uaktualnione.
  6. ?>



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JaRoPHP
post
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(jacus24 @ 19.12.2007, 10:26:26 ) *
A gdy zamiast przecinków dam kropki to po kliknieciu wyskakuje
Składnia polecenia UPDATE - nie ma kropek, są przecinki.

Cytat
UPDATE user_info SET first_name = '', email = '', state = '', city = '',
wiek = '', waga = '', wzrost = '', jestem = '', aktualnie = '', chcialbym = '' ,
lubie = '', nie_lubie = '', szukam = '', WHERE username = 'ktos' AND password = 'cos'
Przed WHERE nie powinno być przecinka.

Poza tym, masz dość dziwnie to zorganizowane - jak ktoś nie wypełni pola do aktualizacji, to zostanie ono skasowane?
Lepiej przebiegać po tablicy $_POST i sprawdzać, czy pole zostało wypełnione - jak tak, to składać element zapytania. Schematycznie:
  1. <?php
  2. $tab = array('first_name' => 'Name', 'waga' => 90, 'szukam' => 'towarzystwa');
  3. $add = array();
  4. foreach($tab as $key => $value) {
  5. if(!empty($value)) {
  6. $add[] = $key . "='" . $value . "'";
  7. }
  8. }
  9.  
  10. if(!empty($add)) {
  11. $add = implode(', ', $add);
  12. $query_update = "UPDATE user_info SET " . $add . " WHERE ...";
  13. echo $query_update;
  14. } else {
  15. echo 'brak danych do aktualizacji';
  16. }
  17. ?>
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: 11.10.2025 - 22:23