Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Nie działa aktualizacja, dlaczego aktualizacja rekordu nie działa?
ttb
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


Witam,
próbuję zaktualizować rekord w tabeli MySQL. Dane są pobierane przez formularz ale po kliknięciu popraw nic się nie zmienia, pozostają stare dane.

[php]

Ten post edytował ttb 25.03.2009, 18:01:47
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




po 1 wywal te@
  1. <?php
  2. $connection = mysql_connect('localhost', 'xxxxx', 'yyyyy')
  3. or die('Brak połączenia z serwerem MySQL');
  4. $db = mysql_select_db('zzzzz', $connection)
  5. or die('Nie mogę połączyć się z bazą danych')
  6. ?>


i tu powinno być zamiast:
  1. <?php
  2. elseif($a == 'save')
  3. ?>


  1. <?php
  2. elseif($_POST['a'] == 'save')
  3. ?>


--------------------
Go to the top of the page
+Quote Post
ttb
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


zmieniłem ale nadal nie działa... masz może jeszcze jakiś pomysł? bo 5 dni przeszukuję internet i nie mogę znaleźć rozwiązania... wszystko działa tylko nie to...
Go to the top of the page
+Quote Post
redelek
post
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


A zwraca Ci jakiś błąd ?
Ja mam taki problem na WebSrv i WampSrv, że musi być to ujęte w takich apostrofach

  1. <?php
  2. mysql_query("UPDATE test SET `kod`='$kod' WHERE `id`='$id'")
  3. ?>


Zobacz co dodałem w polach kod i id takie smieszne pazurki ``.

Nie wiem dlaczego tak jest, na serwerach roboczych faktycznie nie jest to wymagane.
Dodatkowo zrób sobie echo danych które odbierasz z formularza, może nie wykonuje on się poprawnie.


Pozdrawiam
Redelek

Ten post edytował redelek 25.03.2009, 09:11:39


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
ttb
post
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


dzięki redelek ale dalej bez zmian...
formularz odczytuje dane dla ID z tabeli, wyświetla pole do edycji, pozwala zmienić zawartość pola ale po wciśnięciu POPRAW w wylistowanej tabeli pojawiają się te same dane co przed edycją...
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Proszę dodać bbcode oraz poprawić temat. Same tagi nie są tematem.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
ttb
post
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


poprawione, przepraszam...

i oczywiście nadal szukam podpowiedzi gdzie może leżeć problem... może coś z ID jest nie tak...

czy może być to wina tego, że pobieram tylko jedno pole z rekordu a nie wszystkie? Może resztę powiniennem ukryć poleceniem "hidden"...

Ten post edytował ttb 25.03.2009, 10:17:04
Go to the top of the page
+Quote Post
kazag
post
Post #8





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


Kod
/* uaktualniamy tabelę test */
mysql_query("UPDATE test SET kod='$kod' WHERE id='$id'")
or die('Błąd zapytania');
echo 'Dane zostały zaktualizowane';


moze to nie ma znaczenia, ale zrób:
$sql=mysql_query("UPDATE test SET kod='$kod' WHERE id='$id'")
a nie samo mysql_query.

potem np:
if(!$sql)
{
echo "Kupa, dane nie zostały zaktualizowane";
exit();
}

Poza tym, to zapytanie jest poprawne moim zdaniem... Czy jesteś pewien, ze masz zmieną "id" w ogole? Mże sie nie przesyła?

Ten post edytował kazag 25.03.2009, 10:54:52


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
ttb
post
Post #9





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


tak, mam zmienną ID (autonumerowanie), klucz podstawowy...
pobiera odpowiednie ID ale coś jest nie tak z przesłaniem poprawionej zmiennej KOD...
spróbuję Twój pomysł...
Go to the top of the page
+Quote Post
kazag
post
Post #10





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


chodzi nie o to, czy masz pole id w bazie, ale czy formularz działa, daj sobie echo $id."-".$kod; i zobacz, czy pokazą ci sie te wartosci, ktore chcesz wstawic do bazy.

Kod
/* odbieramy zmienne z formularza */
$id = $_POST['id'];
$kod = $_POST['kod'];

echo $id."-".$kod;


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
ttb
post
Post #11





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


hmm... teraz to już nic nie rozumiem... wpisałem linijkę kodu z ECHO... i nic się nie zmieniło - czyli nie czyta zmiennych... dobrze rozumiem?
Go to the top of the page
+Quote Post
kazag
post
Post #12





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


rozumiem, ze dostałeś tylko ten myślnik, który jest między nimi, tak?
jesli widzisz tylko ten myślnik, to znaczy ni mniej ni wiecej tyle, że zmienne id i kod gdzieś giną.

poza tym:
$a nigdy nie będzie "save", ponieważ wysyłasz formularz postem, a zmienne odczytujesz z $_GET... zmień na:
$a=$_POST['a'] i $id=$_POST['id'], albo zmień method na "get".

Ten post edytował kazag 25.03.2009, 12:12:42


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
ttb
post
Post #13





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


nie, nawet myślnika nie pokazało...
zmieniłem POST na GET i też bez rezultatu...

Ten post edytował ttb 25.03.2009, 12:27:19
Go to the top of the page
+Quote Post
Spawnm
post
Post #14





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




pokaż jak teraz wygląda twój kod smile.gif
Go to the top of the page
+Quote Post
ttb
post
Post #15





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


Kod
<?php
// łączymy się z bazą danych
    $connection = mysql_connect('localhost', 'xxx', 'yyy')
    or die('Brak połączenia z serwerem MySQL');
    $db = mysql_select_db('zzz', $connection)
    or die('Nie mogę połączyć się z bazą danych');

$a = $_GET['a'];
$id = $_GET['id'];

if($a == 'edit' and !empty($id)) {
    /* zapytanie do tabeli */
    $wynik = mysql_query("SELECT * FROM test WHERE id='$id'")
    or die('Błąd zapytania');
    /*wyświetlamy wyniki, sprawdzamy, czy zapytanie zwróciło wartość większą od 0 */
    if(mysql_num_rows($wynik) > 0) {
         /* odczytujemy zawartość wiersza z tabeli */
        $r = mysql_fetch_assoc($wynik);
        /* wczytujemy dane do formularza */
        /* w formularz znajdują się ukryte pola "a" z wartością "save" i pole "id" z wartością zmiennej id */
        echo '<form action="st_dro_1.php" method="get">
        <input type="hidden" name="a" value="save" />
        <input type="hidden" name="id" value="'.$id.'" />
        kod:<br /><input type="text" name="kod" value="'.$r['kod'].'" /><br />
        <input type="submit" value="popraw" />
        </form>';
    }
}
elseif($_POST['a'] == 'save')
{
    /* odbieramy zmienne z formularza */
    $id = $_POST['id'];
    $kod = $_POST['kod'];
echo $id."-".$kod;
  
    /* uaktualniamy tabelę test */
        mysql_query("UPDATE test SET kod='$kod' WHERE id='$id'")
or die('Błąd zapytania');
    echo 'Dane zostały zaktualizowane';
}
?>
Go to the top of the page
+Quote Post
Spawnm
post
Post #16





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




echo '<form action="st_dro_1.php" method="get">

nie działa bo teraz wysyłasz get a chcesz odebrać post tongue.gif
Go to the top of the page
+Quote Post
ttb
post
Post #17





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


miałem wcześniej POST i też nie działało... sad.gif
Go to the top of the page
+Quote Post
Spawnm
post
Post #18





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




to zmień teraz i będzie działało ,
wcześniej miałeś post i odbierałeś get , teraz masz get i odnierasz post smile.gif
Go to the top of the page
+Quote Post
ttb
post
Post #19





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 25.03.2009

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


zmieniłem get na post i dalej nie zmienia... sad.gif
Go to the top of the page
+Quote Post
redelek
post
Post #20





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


U mnie działa bez problemu

Nie chciało mi się robić więcej więc spreparowałem link smile.gif

Odbierasz tak dane z innego formularza prawda
http://localhost/PHP_forum/Problem_z_aktua...a=edit&id=2
Po wpisaniu tych danych pokazał mi się formularz. Zmieniłem coś w nim i wybrałem POPRAW.

Poprawił w bazie bez problemów.

Tak wygląda mój kod

  1. <?php
  2. // łączymy się z bazą danych
  3.    $connection = mysql_connect('localhost', 'root', '') // ZMIEŃ NA SWOJE DANE !!!
  4.    or die('Brak połączenia z serwerem MySQL');
  5.    $db = mysql_select_db('zzz', $connection) // ZMIEŃ NA SWOJE DANE !!!
  6.    or die('Nie mogę połączyć się z bazą danych');
  7.  
  8. $a = $_GET['a']; // te dane odbierasz z innego formularza
  9. $id = $_GET['id'];// te dane odbierasz z innego formularza
  10.  
  11. if($a == 'edit' and !empty($id)) {
  12.    /* zapytanie do tabeli */
  13.    $wynik = mysql_query("SELECT * FROM zzz WHERE id='$id'")
  14.    or die('Błąd zapytania');
  15.    /*wyświetlamy wyniki, sprawdzamy, czy zapytanie zwróciło wartość większą od 0 */
  16.    if(mysql_num_rows($wynik) > 0) {
  17.         /* odczytujemy zawartość wiersza z tabeli */
  18.        $r = mysql_fetch_assoc($wynik);
  19.        /* wczytujemy dane do formularza */
  20.        /* w formularz znajdują się ukryte pola "a" z wartością "save" i pole "id" z wartością zmiennej id */
  21.        
  22.        /* action ZMIEŃ NA SWOJ PLIK ja dałem ind.php !!!!! */
  23.        echo '<form action="ind.php" method="POST">
  24.        <input type="hidden" name="a" value="save" />
  25.        <input type="hidden" name="id" value="'.$id.'" />
  26.        kod:<br /><input type="text" name="kod" value="'.$r['kod'].'" /><br />
  27.        <input type="submit" value="popraw" />
  28.        </form>';
  29.    }
  30. }
  31. elseif($_POST['a'] == 'save')
  32. {
  33.    /* odbieramy zmienne z formularza */
  34.    $id = $_POST['id'];
  35.    $kod = $_POST['kod'];
  36.  
  37.    /* uaktualniamy tabelę test */
  38.        mysql_query("UPDATE zzz SET kod='$kod' WHERE id='$id'")
  39. or die('Błąd zapytania');
  40.    echo 'Dane zostały zaktualizowane';
  41. }
  42. ?>


Zobacz może się uda. Pierwsze masz dobrze chyba bo odbierasz coś GET z innego formularza. W formularzu do poprawy już uzywasz metody POST
to i dane odbieraj post.
Drobne modyfikacje i działa jak szalone

Przed:
id kod
1 test1
2 test2
3 test3

Po wysłaniu
1 zmiana_test1
2 zmiana_test2
3 zmiana_test3


Redelek

Ten post edytował redelek 25.03.2009, 12:58:28


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 19.08.2025 - 14:38