masterhunter
24.09.2009, 19:03:59
Witam.
Mam taki kod:
Formularz:
<form method="POST" action="edycja_dodaj.php"> <b>Edycja danych personalnych:
</b><br><br> <p style="margin: 0px; width: 200px; float: left;">Nick:
</p><input type="text" size="10" name="imie" value="<?echo "$imie" ?>">
<br> <input type="submit" value="Uaktualnij">
edycja_dodaj.php
<?php
include "config.php";
?>
<html>
<head>
<meta http-equiv="refresh" content="5; url=index.php">
</head>
<body>
<?php
$imie = $_POST['imie'];
$zapytanie = "UPDATE `user` SET(`imie` = '$imie')";
$wykonaj = "mysql_query('$zapytanie')";
<center>Twoje dane personalne zostały zaktualizowane <b>pomyślnie!</b><br>
Za <b>5 sekund</b> zostaniesz przekierowany na swoj panel pracownika.
</center>
";
?>
</body>
</html>
I wszystko by było fajnie tylko dane mi czyta z mysql ale nie można zapisać. Tzn można ale nie do mysql lecz dane wklejają się w ciasteczka i w mysql nic się nie updatuje a w panelu logowania tak...
Co źle robię ?
Proszę o pomoc.
Pozdrawiam.
masterhunter
25.09.2009, 08:44:58
Wszystko przeczytałem i nie wiem gdzie robię błąd a gdzieś robię bo
zwraca tylko () więc żadnych błędów nie ma...
Może znacie komendę która pokaże cały przebieg UPDATE do bazy a nie tylko błędy.
Możecie mi pomóc ?
Pozdrawiam.
thek
25.09.2009, 08:56:50
Jeśli nie ma błędów to możesz tylko sprawdzić ewentualnie czy dodało do bazy. Funkcja mysql_affected_rows pokaże Ci ile razy UPDATE się wykonało. Jeśli 0 to znaczy, że nie doszło do update. Tylko tyle można zrobić. Sprawdź sobie manual tej funkcji by zobaczyć przykłady
masterhunter
25.09.2009, 09:17:51
Zaktualizowanych rekordów: -1
Nie mam pomysłów.
Zauważyłem ze w cookies wpisują się zaktualizowane dane

i w panelu wszystko jest git

ale po wylogowaniu i ponownym zalogowaniu ściąga niezaktualizowane dane z MySQL
thek
25.09.2009, 10:11:14
Skoro zapis do bazy następuje to masz niewiele możliwości jakie Ci zostają do sprawdzenia:
- skrypt zapisuje dane nie do tablicy w mysql jaką chcesz, ale do jakiejś tablicy tymczasowej w bazie,
- całość dzieje się na transakcji, logowanie - ustawianie punktu, wylogowanie - rollback,
- coś jest nie tak z cache'owaniem stron i winna jest tu przeglądarka.
Najgorsze jest 3, bo nie masz na nie wpływu nawet tagami meta i ustawieniami serwera, co sam przerabiałem. Do tej pory błędu się nie pozbyłem. Mam zdjęcia w panelu usera, jesli skasuję jedno i w jego miejsce wgram drugie to dostaje ono tę samą nazwę. W efekcie przeglądarka nie widzi zmian i nawet ustawienie expires, no-cache w meta oraz nie cache'owanie po stronie serwera stron nic nie daje. Przeglądarka korzysta ze swojego cache i jest kibel.
flashdev
25.09.2009, 12:22:56
Nie wiem czy takie coś działa:
Cytat
$wykonaj = "mysql_query('$zapytanie')";
Ale po co komplikować, zrób tak:
Chrom
25.09.2009, 15:55:48
a czy nie powinieneś dać jeszcze klauzuli np. WHERE id = '$id'
masterhunter
25.09.2009, 18:03:34
Poprawiłem ale nic to nie pomogło.
Robert1985
25.09.2009, 18:39:57
Z tego co pamiętam to affected rows wyskakiwało mi -1 gdy chciałem dodać do bazy rekord o takim samym kluczu glównym jak już istniejący w bazie. Może pokaż nam jak wygląda twoja baza danych.
Chrom
26.09.2009, 08:41:20
mysql_query("UPDATE user SET imie = '$imie' WHERE user_id = '1'");
u mnie zadziałało
masterhunter
28.09.2009, 13:24:46
Nic to nie dało ...

Może robię coś źle gdzie indziej. Mógłbyś ściągnąć ten panel i zerknąć w kod ?
Pozdrawiam.
Pomoże ktoś ?