Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql] Update nie działa
Forum PHP.pl > Forum > Przedszkole
jacus24
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. ?>



suchy1
a jaki wyskakuje blad?! czy masz biala strone?? snitch.gif
jacus24
Nie wraca mi do strony na której można uaktualnic dane(tak mam ustawione) i jest odnosik że można wrócic do swojego profilu .
Oczywiście te dane które były podane podczas rejesttracji są pobierane, ale te nowe sie nie nadpisują ani nie dodają do bazy.
A gdy zamiast przecinków dam kropki to po kliknieciu wyskakuje
  1. <?php
  2. Somethin is wrong in your syntax obok ' .email='jakisemail'. state='opolskie'. city='opole w lini 2
  3. ?>






Po wrzuceniu na server i sprawdzeniu czy tam działa wyświetla mi
  1. <?php
  2. You have an error in your SQL syntax; chcek the manual that corresponds to your MysQl server version for the right syntax to use near '. email = 'adresemail' . state = 'opolskie' . city ='opole' . wiek = '24 at line 2
  3. ?>

Szukałem błędu, ale nie mogę go znaleść:(
rygiel
Proponuje Ci uzyć PhpMyAdmin do skonstuowania sobie prawidłowego UPDATE dla rekordu. Przecinków między polami, wartościami nie można zastąpić kropkami
JaRoPHP
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. ?>
jacus24
Nie nie zosstaje sksowane zostaje tak jak było wczesniej w phpMyAdmine pisze że aktualizacja była tylko że nic się nie zmieniło
JaRoPHP
Cytat(jacus24 @ 19.12.2007, 11:00:42 ) *
pisze że aktualizacja była tylko że nic się nie zmieniło
- bo jest błąd zapytania, ale jak już będzie poprawne, to dane zostaną skasowane...
jacus24
Zmieniłem na takie zapytanie
  1. <?php
  2. $query_update = "UPDATE user_info SET 
  3. first_name = '$firs_name', email = '$email' , state = '$state' , city = '$city' , wiek =
  4. '$wiek' , waga = '$waga' , wzrost = '$wzrost' , jestem = '$jestem' , aktualnie = '$aktualnie' , 
  5. chcialbym = '$chcialbym' , lubie = '$lubie' , nie_lubie = '$nie_lubie' , szukam = '$szukam '
  6. WHERE id = '" . $_POST['id'] . "'";
  7. ?>
i już działa:)
Jeśli ktoś zauważy jakiś błąd który można poprawić to proszę napisać.
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.