Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Nie zapisuje danych do bazy
Forum PHP.pl > Forum > Przedszkole
gadzeciarz
Mam taki problem, że zrobiłem formularz edycji danych dla użytkownika. "zmiana.php"
Gdy się wejdzie na tą podstrone, to w tych okienkach wyswietlają się te dane które są obecnie w bazie.

Gdy wpiszę nowe, klikną "ZAPISZ" to przenosi mnie na tą postrone "?a=zmiana&p=3" wyświetla Twoje dane zostały zmienione pomyślnie! oraz bezpośrednio pod tym formularz. ( zdaje mi się że powinno wyswietlać sam komunikat a formularza już nie)

Pisze że poprawnie zmienione, a tak naprawe te dane co były wcześniej są nadal. Nic się nie zmienia.

Co może być nie tak??


O to kod pliku:
  1. <?php
  2. if(!isSet($_SESSION['gracz'])){
  3. header ("Location: index.php");
  4.  
  5. }
  6.  
  7. if(isSet($_POST['zmien_dane'])){
  8. $imienazwisko = mysql_real_escape_string(htmlspecialchars($_POST['imienazwisko']));
  9. mysql_query("UPDATE gracze SET imienazwisko='$imienazwisko', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', ' WHERE gracz='".$oGracz['gracz']."' ");
  10. echo "<div class='ok'><div class='inner'>Twoje dane zostały zmienione pomyślnie!</div></div><br /><a href='java script:history.go(-1)'>powrót</a>";
  11. }
  12.  
  13. ?>
  14.  
  15.  
  16. <?php
  17. $dane = mysql_fetch_array(mysql_query("SELECT imienazwisko, adres, kodpocztowy, miasto FROM gracze WHERE gracz='".$oGracz['gracz']."'"));
  18. ?>
  19. <center>
  20. <h3>Edytuj Swoje Dane Osobowe</h3>
  21. <table align="center"><form action="?a=zmiana&p=3" name="zmiana_dane" method="post">
  22. <table>
  23. <tr>
  24. <td><h4>Imię i Nazwisko</h4></td>
  25. </tr>
  26. <tr>
  27. <td><input size="30" id="input" maxlength="40" type="text" name="imienazwisko" value="<?php echo $dane['imienazwisko'] ?>" /></td>
  28. </tr>
  29. <tr>
  30. <td><h4>Adres</h4></td>
  31. </tr>
  32. <tr>
  33. <td><input size="30" id="input" maxlength="40" type="text" name="adres" value="<?php echo $dane['adres'] ?>" /></td>
  34. </tr>
  35. <tr>
  36. <td><h4>Kod Pocztowy:</h4></td>
  37. </tr>
  38. <tr>
  39. <td><input size="30" id="input" maxlength="10" type="text" name="kodpocztowy" value="<?php echo $dane['kodpocztowy'] ?>" /></td>
  40. </tr>
  41. <tr>
  42. <td><h4>Miasto:</h4></td>
  43. </tr>
  44. <tr>
  45. <td><input size="30" id="input" maxlength="10" type="text" name="miasto" value="<?php echo $dane['miasto'] ?>" /></td>
  46. </tr>
  47. <tr>
  48. <td align="right"><input type="submit" id="button" name="zmien_dane" value="Zmień"></td>
  49. <td>&nbsp;</td>
  50. </tr>
  51. </table>
  52. </form></table>
  53. </center>
Kshyhoo
Wyświetl sobie zapytanie w echo, to zobaczysz babola. A formularz się wyświetla, bo nie blokujesz jego wyświetlania...
gadzeciarz
Jeszcze żebym wiedział jak to zrobić smile.gif hehe.

Powiem Ci że już mi łeb pęka, bo siedze nad tym dość sporo. Już prawie jest zrobiony.

Fajnie by było jakby udało sie to naprawić.


Mógłbyś bardziej rozwinąć, co mam zrobić?
Kshyhoo
Cytat(gadzeciarz @ 22.03.2012, 22:59:33 ) *
Jeszcze żebym wiedział jak to zrobić smile.gif hehe.

Napisałem jak, wyświetl zapytanie w echo.
Cytat(gadzeciarz @ 22.03.2012, 22:59:33 ) *
Powiem Ci że już mi łeb pęka, bo siedze nad tym dość sporo. Już prawie jest zrobiony.

Nie więcej niż 15 minut roboty (chyba, że ktoś szybko pisze, to połowę z tego).
Cytat(gadzeciarz @ 22.03.2012, 22:59:33 ) *
Fajnie by było jakby udało sie to naprawić.

Zamiast zakładać 3 wątek, zmień kod.
Cytat(gadzeciarz @ 22.03.2012, 22:59:33 ) *
Mógłbyś bardziej rozwinąć, co mam zrobić?

echo 'tu zapytanie';
gadzeciarz
No tak, ale jakie mam zapytanie wsadzić ?
Kshyhoo
Przypisz zapytanie do zmiennej a zmienną wyświetl.
$zapytanie = ...;
echo $zapytanie;
gadzeciarz
Stary Prosze Cie o pomoc. Mówisz ze ok 15 min zrobienie czegoś takiego. Tylko dla takiej osoby która to umie. Ja cały czas się ucze.

Musze to wykonać jak najszybciej a mam już totalny mętlik w głowie.

Gdzie mam to zapytanie wstawić?
frantic09
Jeśli chodzi o błędy w updacie to wpisz do kodu między linię 8 a 9 kod:
  1. echo "UPDATE gracze SET imienazwisko='$imienazwisko', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', ' WHERE gracz='".$oGracz['gracz']."' "

a to wyświetli Ci zapytanie w pełnej krasie wink.gif
Kshyhoo
Nie ma tak dobrze. Dla początkujących są kursy. Na forum pomagamy, ale bez przesady.
frantic09
a czy czasem tutaj w zapytaniu nie ma błędu?
  1. miasto='$miasto',

a powinno być
  1. miasto='$miasto'

czyli bez przecinka?
Kshyhoo
Cytat(frantic09 @ 22.03.2012, 23:17:02 ) *
czyli bez przecinka?

Bez przecinka i bez ciapka, ale on ma się sam nauczyć szukać błędów. Jakikolwiek edytor z kolorowaniem składni mu to pokaże. Forum nie parser. Naprowadzaj go, ale nie rób za niego,
frantic09
Cytat(Kshyhoo @ 22.03.2012, 23:19:33 ) *
Bez przecinka i bez ciapka, ale on ma się sam nauczyć szukać błędów. Jakikolwiek edytor z kolorowaniem składni mu to pokaże. Forum nie parser. Naprowadzaj go, ale nie rób za niego,


Masz rację z tym ciapkiem wink.gif Poza tym to i tak przedszkole, ale zapamiętam, żeby dawać "młodszym" wędkę zamiast rybki wink.gif
gadzeciarz
Zrobiłem tak:

  1. <?php
  2. if(!isSet($_SESSION['gracz'])){
  3. header ("Location: index.php");
  4.  
  5. }
  6.  
  7. if(isSet($_POST['zmien_dane'])){
  8. echo "UPDATE gracze SET imienazwisko='$imienazwisko', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', ' WHERE gracz='".$oGracz['gracz']."' "
  9. $imienazwisko = mysql_real_escape_string(htmlspecialchars($_POST['imienazwisko']));
  10. mysql_query("UPDATE gracze SET imienazwisko='$imienazwisko', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', ' WHERE gracz='".$oGracz['gracz']."' ");
  11. echo "<div class='ok'><div class='inner'>Twoje dane zostały zmienione pomyślnie!</div></div><br /><a href='java script:history.go(-1)'>powrót</a>";
  12. }
  13.  
  14. ?>
  15.  
  16.  
  17. <?php
  18. $dane = mysql_fetch_array(mysql_query("SELECT imienazwisko, adres, kodpocztowy, miasto FROM gracze WHERE gracz='".$oGracz['gracz']."'"));
  19. ?>
  20. <center>
  21. <h3>Edytuj Swoje Dane Osobowe</h3>
  22. <table align="center"><form action="?a=zmiana&p=3" name="zmiana_dane" method="post">
  23. <table>
  24. <tr>
  25. <td><h4>Imię i Nazwisko</h4></td>
  26. </tr>
  27. <tr>
  28. <td><input size="30" id="input" maxlength="40" type="text" name="imienazwisko" value="<?php echo $dane['imienazwisko'] ?>" /></td>
  29. </tr>
  30. <tr>
  31. <td><h4>Adres</h4></td>
  32. </tr>
  33. <tr>
  34. <td><input size="30" id="input" maxlength="40" type="text" name="adres" value="<?php echo $dane['adres'] ?>" /></td>
  35. </tr>
  36. <tr>
  37. <td><h4>Kod Pocztowy:</h4></td>
  38. </tr>
  39. <tr>
  40. <td><input size="30" id="input" maxlength="10" type="text" name="kodpocztowy" value="<?php echo $dane['kodpocztowy'] ?>" /></td>
  41. </tr>
  42. <tr>
  43. <td><h4>Miasto:</h4></td>
  44. </tr>
  45. <tr>
  46. <td><input size="30" id="input" maxlength="10" type="text" name="miasto" value="<?php echo $dane['miasto'] ?>" /></td>
  47. </tr>
  48. <tr>
  49. <td align="right"><input type="submit" id="button" name="zmien_dane" value="Zmień"></td>
  50. <td>&nbsp;</td>
  51. </tr>
  52. </table>
  53. </form></table>
  54. </center>


I wywala mi taki błąd:

  1. Parse error: syntax error, unexpected T_VARIABLE, expecting ',' OR ';' /.../zmiana.php ON line 9
Kshyhoo
Dokładnie o to chodzi. Jak zrobisz za niego, jutro przyjdzie z byle czym ponownie a jak nauczysz myśleć, to będzie robił sam.

No to zobacz, co masz w linii 8...

EDIT: Przecież to się nawet do przedszkola nie nadaje.
gadzeciarz
Kshyhoo Wiem że powinienem sie tego nauczyć. Cały czas coś nowego łapie. Miałem to zrobić na wtorek i cały czas mi się to przedłuża.

Ja mam dopiero 16 lat i się ucze małymi kroczkami. Cięzko mi powiązać naukę w szkole jak i PHP.

Myślę że mogę liczyć na Waszą pomoc
Niktoś
Naprawi 8 i zaraz na 10 notice będzie mu wywalało.Człowieku masz problemy z interpunkcją .Są manuale ,są tutoriale,zobacz jak składnie i polecenia wyglądają.
Kshyhoo
Naucz się czytać ze zrozumieniem. Klepiesz kod gdzie popadnie. Skoro napisałem, że masz swoje zapytanie dać w echo, to je daj a nie klep.
  1. if(isSet($_POST['zmien_dane'])) {
  2. $imienazwisko = mysql_real_escape_string(htmlspecialchars($_POST['imienazwisko']));
  3. $zapytanie = "UPDATE gracze SET imienazwisko=$imienazwisko, adres=$adres, kodpocztowy=$kodpocztowy, miasto=$miasto WHERE gracz=$oGracz['gracz']";
  4. //mysql_query($zapytanie);
  5. echo $zapytanie;
  6. }


EDIT: poprawiłem kod.
frantic09
No tak... mi się zapomniało, ale jeśli już troszkę ogarniasz, to powinieneś wiedzieć jak się kończy większość instrukcji w PHP.

No i tak jak mówi Kshyhoo, mała podpowiedź dla Ciebie: Jeśli parser wypisuje błąd "parse error" w linii X, to często się zdarza, że zapomniałeś czegoś dopisać w linii X-1 wink.gif
gadzeciarz
  1. <?php
  2. if(!isSet($_SESSION['gracz'])){
  3. header ("Location: index.php");
  4.  
  5. }
  6.  
  7. if(isSet($_POST['zmien_dane'])){
  8. imienazwisko = mysql_real_escape_string(htmlspecialchars($_POST['imienazwisko']));
  9. $zapytanie = "UPDATE gracze SET imienazwisko=$imienazwisko, adres=$adres, kodpocztowy=$kodpocztowy, miasto=$miasto WHERE gracz=$oGracz['gracz']";
  10. echo "<div class='ok'><div class='inner'>Twoje dane zostały zmienione pomyślnie!</div></div><br /><a href='java script:history.go(-1)'>powrót</a>";
  11. echo $zapytanie;
  12. }
  13.  
  14. ?>
  15.  
  16.  
  17. <?php
  18. $dane = mysql_fetch_array(mysql_query("SELECT imienazwisko, adres, kodpocztowy, miasto FROM gracze WHERE gracz='".$oGracz['gracz']."'"));
  19. ?>
  20. <center>
  21. <h3>Edytuj Swoje Dane Osobowe</h3>
  22. <table align="center"><form action="?a=zmiana&p=3" name="zmiana_dane" method="post">
  23. <table>
  24. <tr>
  25. <td><h4>Imię i Nazwisko</h4></td>
  26. </tr>
  27. <tr>
  28. <td><input size="30" id="input" maxlength="40" type="text" name="imienazwisko" value="<?php echo $dane['imienazwisko'] ?>" /></td>
  29. </tr>
  30. <tr>
  31. <td><h4>Adres</h4></td>
  32. </tr>
  33. <tr>
  34. <td><input size="30" id="input" maxlength="40" type="text" name="adres" value="<?php echo $dane['adres'] ?>" /></td>
  35. </tr>
  36. <tr>
  37. <td><h4>Kod Pocztowy:</h4></td>
  38. </tr>
  39. <tr>
  40. <td><input size="30" id="input" maxlength="10" type="text" name="kodpocztowy" value="<?php echo $dane['kodpocztowy'] ?>" /></td>
  41. </tr>
  42. <tr>
  43. <td><h4>Miasto:</h4></td>
  44. </tr>
  45. <tr>
  46. <td><input size="30" id="input" maxlength="10" type="text" name="miasto" value="<?php echo $dane['miasto'] ?>" /></td>
  47. </tr>
  48. <tr>
  49. <td align="right"><input type="submit" id="button" name="zmien_dane" value="Zmień"></td>
  50. <td>&nbsp;</td>
  51. </tr>
  52. </table>
  53. </form></table>
  54. </center>


Znów błąd wywala:

  1. Parse error: syntax error, unexpected '=' /.../zmiana.php ON line 8
Kshyhoo
Ja idę spać a Ty myśl, jak powinna wyglądać zmienna w PHP. Kpiny!
Kostek.88
Masz błąd... nie postawiłeś znaku dolara przed zmienną...

Poza tym

  1. "UPDATE gracze SET imienazwisko=$imienazwisko, adres=$adres, kodpocztowy=$kodpocztowy, miasto=$miasto WHERE gracz=$oGracz['gracz']";


Niech mnie ktoś naprowadzi, bo nie używam podwójnych cudzysłowów... czy nie powinno być... tak?

  1. "UPDATE gracze SET imienazwisko='" . $imienazwisko . "', adres='" . $adres . "', kodpocztowy='" . $kodpocztowy . "', miasto='" . $miasto . "' WHERE gracz='" . $oGracz['gracz'] . "'";


Moje uzasadnienie: o ile zmienna jako liczba zadziała, to string powinien być już w cudzysłowie, zatem...

  1. $liczba = 5;
  2. $tekst = 'txt';
  3.  
  4. "SET liczba=$liczba"
  5.  
  6. "SET tekst='" . $tekst . "'"
gadzeciarz
Ok, wróćmy do kodu pierwotnego.
Co mam teraz krok po kroku zrobić questionmark.gif

  1. <?php
  2. if(!isSet($_SESSION['gracz'])){
  3. header ("Location: index.php");
  4.  
  5. }
  6.  
  7. if(isSet($_POST['zmien_dane'])){
  8. $imienazwisko = mysql_real_escape_string(htmlspecialchars($_POST['imienazwisko']));
  9. mysql_query("UPDATE gracze SET imienazwisko='$imienazwisko', adres='$adres', kodpocztowy='$kodpocztowy', miasto='$miasto', ' WHERE gracz='".$oGracz['gracz']."' ");
  10. echo "<div class='ok'><div class='inner'>Twoje dane zostały zmienione pomyślnie!</div></div><br /><a href='java script:history.go(-1)'>powrót</a>";
  11. }
  12.  
  13.  
  14. ?>
  15.  
  16.  
  17. <?php
  18. $dane = mysql_fetch_array(mysql_query("SELECT imienazwisko, adres, kodpocztowy, miasto FROM gracze WHERE gracz='".$oGracz['gracz']."'"));
  19. ?>
  20. <center>
  21. <h3>Edytuj Swoje Dane Osobowe</h3>
  22. <table align="center"><form action="?a=zmiana&p=3" name="zmiana_dane" method="post">
  23. <table>
  24. <tr>
  25. <td><h4>Imię i Nazwisko</h4></td>
  26. </tr>
  27. <tr>
  28. <td><input size="30" id="input" maxlength="40" type="text" name="imienazwisko" value="<?php echo $dane['imienazwisko'] ?>" /></td>
  29. </tr>
  30. <tr>
  31. <td><h4>Adres</h4></td>
  32. </tr>
  33. <tr>
  34. <td><input size="30" id="input" maxlength="40" type="text" name="adres" value="<?php echo $dane['adres'] ?>" /></td>
  35. </tr>
  36. <tr>
  37. <td><h4>Kod Pocztowy:</h4></td>
  38. </tr>
  39. <tr>
  40. <td><input size="30" id="input" maxlength="10" type="text" name="kodpocztowy" value="<?php echo $dane['kodpocztowy'] ?>" /></td>
  41. </tr>
  42. <tr>
  43. <td><h4>Miasto:</h4></td>
  44. </tr>
  45. <tr>
  46. <td><input size="30" id="input" maxlength="10" type="text" name="miasto" value="<?php echo $dane['miasto'] ?>" /></td>
  47. </tr>
  48. <tr>
  49. <td align="right"><input type="submit" id="button" name="zmien_dane" value="Zmień"></td>
  50. <td>&nbsp;</td>
  51. </tr>
  52. </table>
  53. </form></table>
  54. </center>
thek
Nie no...Już druga strona, a u Ciebie ewidentnie brak pomysłu na "Co właściwie mam robić?". Wybacz, ale bycie początkującym nie zwalnia od konieczności posiadania choćby podstaw. U Ciebie nie widać nawet chęci jakiejkolwiek nauki. Wykładasz się na kompletnych podstawach i liczysz, że znajdzie się dobra dusza, która na żywca wklei Ci gotowy kod. Php, czy sql to języki, które są do opanowania w podstawach Ci potrzebnych w kilka, kilkanaście godzin! Dlatego ten i wszystkie tematy gdzie walisz ów kod (a z tym są już łącznie 3!) zamykam, bo nie przejawiasz jakichkolwiek rokowań na poprawę podejścia do nauki choćby elementarza.
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.