Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] problem z funkcją update
Forum PHP.pl > Forum > Przedszkole
wabanek
nie działa mi funkcja update, może mi ktoś pomóc, próbowałem różne sposoby tej funkcji i żadna nie działa ,w tej chwili mam coś takiego
  1. $nazwisko=$_POST['nazwisko'];
  2. $liczba_punktow=$_POST['liczba_punktow'];
  3. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  4. $nazwa_bazy_danych = 'zawody';
  5. $login_bazy_danych = 'root';
  6. $haslo_bazy_danych = '';
  7. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
  8. echo 'Nie moge polaczyc sie z baza danych';
  9. exit (0);
  10. }
  11. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  12. echo 'Blad otwarcia bazy danych';
  13. exit (0)
  14. $query=("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  15. mysql_query($query);
  16. echo "Rekord zaktualizowany";
  17. if ( !mysql_close() ) {
  18. echo 'Nie moge zakonczyc polaczenia z baza danych';
  19. exit (0);
Ilware
Dostajesz błąd z PHP czy z MySQL'a? Czy może całość przechodzi i nic się nie dzieje?
devwebit
Gdzie łączysz się z bazą i wybierasz bazę?
Ilware
linia 7 połączenie z bazą danych , linia 11 wybór bazy. O co chodzi w Twoim pytaniu?
bzeebzee
  1.  
  2. // popraw linię z wywołaniem zapytania na:
  3.  
  4. mysql_query($query) or die(mysql_error());
  5.  


Będzie wiadomo dlaczego update nie działa smile.gif
devwebit
  1. <?php
  2. $nazwisko = "malysz";
  3. $liczba_punktow = 7777;
  4. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  5. $nazwa_bazy_danych = '';
  6. $login_bazy_danych = 'root';
  7. $haslo_bazy_danych = '';
  8. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
  9. echo 'Nie moge polaczyc sie z baza danych';
  10. exit (0);
  11. }
  12. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  13. echo 'Blad otwarcia bazy danych';
  14. exit (0);
  15. }
  16. $query=("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  17. mysql_query($query);
  18. echo "Rekord zaktualizowany";
  19.  
  20. if ( !mysql_close() ) {
  21. echo 'Nie moge zakonczyc polaczenia z baza danych';
  22. exit (0);
  23. }
  24. ?>
  25.  


Miałeś niedomknięte if'y. Teraz powinno działać
wabanek
Cytat(devwebit @ 11.01.2012, 22:17:23 ) *
  1. <?php
  2. $nazwisko = "malysz";
  3. $liczba_punktow = 7777;
  4. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  5. $nazwa_bazy_danych = '';
  6. $login_bazy_danych = 'root';
  7. $haslo_bazy_danych = '';
  8. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
  9. echo 'Nie moge polaczyc sie z baza danych';
  10. exit (0);
  11. }
  12. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  13. echo 'Blad otwarcia bazy danych';
  14. exit (0);
  15. }
  16. $query=("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  17. mysql_query($query);
  18. echo "Rekord zaktualizowany";
  19.  
  20. if ( !mysql_close() ) {
  21. echo 'Nie moge zakonczyc polaczenia z baza danych';
  22. exit (0);
  23. }
  24. ?>
  25.  


Miałeś niedomknięte if'y. Teraz powinno działać


twój kod działa, ale jak chce zmienić w polach to wyskakuje mi błąd
Notice: Undefined index: nazwisko in C:\xampp\htdocs\update.php on line 11

Notice: Undefined index: liczba_punktow in C:\xampp\htdocs\update.php on line 12

i nic się nie zmienia, mój kod
  1. <?php
  2. ini_set('display_errors','1');
  3. $nazwisko=$_GET['nazwisko'];
  4. $liczba_punktow=$_POST['liczba_punktow'];
  5. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  6. $nazwa_bazy_danych = 'zawody';
  7. $login_bazy_danych = 'root';
  8. $haslo_bazy_danych = '';
  9. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
  10. echo 'Nie moge polaczyc sie z baza danych';
  11. exit (0);
  12. }
  13. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  14. echo 'Blad otwarcia bazy danych';
  15. exit (0);
  16. }
  17. $query=("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  18. mysql_query($query);
  19. echo "Rekord zaktualizowany";
  20.  
  21. if ( !mysql_close() ) {
  22. echo 'Nie moge zakonczyc polaczenia z baza danych';
  23. exit (0);
  24. } ?>
  25. <form action="update.php" method="GET">
  26. Imie<input type="text" name="imie"/></form>
  27. <form action="update.php" method="post">
  28. Liczba punktów<input type="text" name="liczba_punktow"/>
  29. <input type="submit" value="Wyślij komentarz"/>
  30. </form
wabanek
Cytat(bzeebzee @ 11.01.2012, 21:53:56 ) *
  1.  
  2. // popraw linię z wywołaniem zapytania na:
  3.  
  4. mysql_query($query) or die(mysql_error());
  5.  


Będzie wiadomo dlaczego update nie działa smile.gif



Dalej nie działa
by_ikar
Ale co nie działa? Jakieś komunikaty błędu? Jakieś objawy tego że nie działa? Opiszesz swój problem jak człowiek, czy każesz tutaj ludziom wróżyć z fusów/szklanej kuli ?
wabanek
Cytat(by_ikar @ 13.01.2012, 10:01:18 ) *
Ale co nie działa? Jakieś komunikaty błędu? Jakieś objawy tego że nie działa? Opiszesz swój problem jak człowiek, czy każesz tutaj ludziom wróżyć z fusów/szklanej kuli ?



po prostu nie updateuje rekordu, pokazuje że rekord został zauktalizowany , ale w bazie nie ma zmiany w tej chwili mój kod wygląda tak
  1. <?php
  2. ini_set('display_errors','1');
  3. $imie = (isset($_POST['imie'])) ? $_POST['imie'] : false;
  4. $nazwisko= (isset($_POST['nazwisko'])) ?$_POST['nazwisko'] : false ;
  5. $liczba_punktow=(isset($_POST['liczba_punktow'])) ?$_POST['liczba_punktow'] : false ;
  6. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  7. $nazwa_bazy_danych = 'zawody';
  8. $login_bazy_danych = 'root';
  9. $haslo_bazy_danych = '';
  10. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
  11. echo 'Nie moge polaczyc sie z baza danych';
  12. exit (0);
  13. }
  14. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  15. echo 'Blad otwarcia bazy danych';
  16. exit (0);
  17. }
  18. if( isset($nazwisko) && isset($liczba_punktow)){
  19. $query=("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  20. mysql_query($query);
  21. echo "Rekord zaktualizowany";
  22. if ( !mysql_close() ) {
  23. echo 'Nie moge zakonczyc polaczenia z baza danych';
  24. exit (0);
  25. } }?>
Ilware
dodaj przed mysql_query linie echo __LINE__;, zobacz czy się w ogóle wykonuje to polecenie.
wabanek
Cytat(Ilware @ 13.01.2012, 10:20:13 ) *
dodaj przed mysql_query linie echo __LINE__;, zobacz czy się w ogóle wykonuje to polecenie.


zapytanie wykonuje , bo jak wpisałem tak

$nazwisko = "malysz";
$liczba_punktow = 7777;

to zmieniło
devwebit
Kod
twój kod działa, ale jak chce zmienić w polach to wyskakuje mi błąd
Notice: Undefined index: nazwisko in C:\xampp\htdocs\update.php on line 11

Notice: Undefined index: liczba_punktow in C:\xampp\htdocs\update.php on line 12


Dodaj tutaj nazwę:

<input type="submit" name="add" value="Wyślij komentarz"/>

I sprawdź czy istnieje $_POST['add'] i wtedy przypisuj do zmiennych dane z post to nie będzie tych błędów Notice: Undefined index: nazwisko
Ilware
czyli w lini if( isset($nazwisko) && isset($liczba_punktow)){ masz puste wartości!!!!Prawdopodobnie nie przekazujesz nic z posta.
wabanek
Cytat(Ilware @ 13.01.2012, 10:33:07 ) *
czyli w lini if( isset($nazwisko) && isset($liczba_punktow)){ masz puste wartości!!!!Prawdopodobnie nie przekazujesz nic z posta.


to jak moge to zmienić ?
devwebit
Np tak:

Kod
<form action="#" method="post">
    Nazwisko<input type="text" name="nazwisko"/>
    Liczba punktów<input type="text" name="punkty"/>
    <input type="submit" name="add" value="Wyślij komentarz"/>
</form>




<?php
$host = 'localhost';
$nazwa = '';
$login = 'root';
$haslo = '';
$db = '';

mysql_connect($host, $login, $haslo) or die(mysql_error());
mysql_select_db($db);

if (isset($_POST['add'])) { //jesli wysłano formularz
    $nazwisko = $_POST['nazwisko']; //przypisywanie danych z formularza do zmiennych
    $punkty = $_POST['punkty'];

    $query = ("UPDATE skoczek SET punkty='$punkty' WHERE nazwisko='$nazwisko'");
    if (mysql_query($query)) { // jeśli zapytanie się wykona wyświetl informację Rekord zakutalizowany
        echo "Rekord zaktualizowany";
    }
}
?>


Zainteresuj się

- addslashes();
- stripslashes();
- htmlentities();
- strip_tags();
- htmlspecialchars();
- mysql_escape_string();
wabanek
Cytat(devwebit @ 13.01.2012, 10:52:59 ) *
Np tak:

Kod
<form action="#" method="post">
    Nazwisko<input type="text" name="nazwisko"/>
    Liczba punktów<input type="text" name="punkty"/>
    <input type="submit" name="add" value="Wyślij komentarz"/>
</form>




<?php
$host = 'localhost';
$nazwa = '';
$login = 'root';
$haslo = '';
$db = '';

mysql_connect($host, $login, $haslo) or die(mysql_error());
mysql_select_db($db);

if (isset($_POST['add'])) { //jesli wysłano formularz
    $nazwisko = $_POST['nazwisko']; //przypisywanie danych z formularza do zmiennych
    $punkty = $_POST['punkty'];

    $query = ("UPDATE skoczek SET punkty='$punkty' WHERE nazwisko='$nazwisko'");
    if (mysql_query($query)) { // jeśli zapytanie się wykona wyświetl informację Rekord zakutalizowany
        echo "Rekord zaktualizowany";
    }
}
?>


Zainteresuj się

- addslashes();
- stripslashes();
- htmlentities();
- strip_tags();
- htmlspecialchars();
- mysql_escape_string();



wyskakuje
Notice: Undefined index: liczba_punktow in C:\xampp\htdocs\update.php on line 29

Notice: Undefined variable: liczba_punktow in C:\xampp\htdocs\update.php on line 30
i nie działa
devwebit
Pokaż kod który wykonujesz, bo mój na pewno działa.
wabanek
Cytat(devwebit @ 13.01.2012, 11:13:04 ) *
Pokaż kod który wykonujesz, bo mój na pewno działa.

  1. <form action="#" method="post">
  2. Nazwisko<input type="text" name="nazwisko"/>
  3. Liczba punktów<input type="text" name="liczba_punkow"/>
  4. <input type="submit" name="add" value="Wyślij komentarz"/>
  5. </form>
  6.  
  7.  
  8.  
  9.  
  10. <?php
  11. $host = 'localhost';
  12. $nazwa = 'zawody';
  13. $login = 'root';
  14. $haslo = '';
  15. $db = '';
  16.  
  17. mysql_connect($host, $login, $haslo) or die(mysql_error());
  18.  
  19. if (isset($_POST['add'])) {
  20. $nazwisko = $_POST['nazwisko'];
  21. $punkty = $_POST['liczba_punktow'];
  22. $query = ("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");
  23. if (mysql_query($query)) {
  24. echo "Rekord zaktualizowany";
  25. }
  26. }
  27. ?>
devwebit
Liczba punktów <input type="text" name="liczba_punkow"/>

Zmień na liczba_punktow. Literówka arrowheadsmiley.png
Sprawdzaj dokładnie nazwy.

Poza tym w zapytaniu masz nie tą zmienną
Ilware
błąd
  1. $punkty = $_POST['liczba_punktow'];
  2. $query = ("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");

ma być
  1. $punkty = $_POST['liczba_punktow'];
  2. $query = ("UPDATE skoczek SET liczba_punktow='$punkty ' WHERE nazwisko='$nazwisko'");

+ literówka w inpucie liczba_punkow ma być liczba_punktow
wabanek
Cytat(Ilware @ 13.01.2012, 11:21:07 ) *
błąd
  1. $punkty = $_POST['liczba_punktow'];
  2. $query = ("UPDATE skoczek SET liczba_punktow='$liczba_punktow' WHERE nazwisko='$nazwisko'");

ma być
  1. $punkty = $_POST['liczba_punktow'];
  2. $query = ("UPDATE skoczek SET liczba_punktow='$punkty ' WHERE nazwisko='$nazwisko'");

+ literówka w inpucie liczba_punkow ma być liczba_punktow




poprawione, błąd nie wyskakuje, ale też rekord się nie zmienia! sad.gif
Ilware
pokaż kod znowu
wabanek
Cytat(Ilware @ 13.01.2012, 11:31:18 ) *
pokaż kod znowu

  1. <form action="#" method="post">
  2. Nazwisko<input type="text" name="nazwisko"/>
  3. Liczba punktów<input type="text" name="liczba_punktow"/>
  4. <input type="submit" name="add" value="Wyślij komentarz"/>
  5. </form>
  6.  
  7.  
  8.  
  9.  
  10. <?php
  11. $host = 'localhost';
  12. $nazwa = 'zawody';
  13. $login = 'root';
  14. $haslo = '';
  15. $db = '';
  16.  
  17. mysql_connect($host, $login, $haslo) or die(mysql_error());
  18.  
  19. if (isset($_POST['add'])) {
  20. $nazwisko = $_POST['nazwisko'];
  21. $punkty = $_POST['liczba_punktow'];
  22. $query = ("UPDATE skoczek SET liczba_punktow='$punkty ' WHERE nazwisko='$nazwisko'");
  23. if (mysql_query($query)) {
  24. echo "Rekord zaktualizowany";
  25. }
  26. }
  27. ?>
devwebit
nazwa bazy jest w zmiennej $db a nie w $nazwa

Zmień
Kod
mysql_select_db($db);

na

Kod
mysql_select_db($nazwa);
wabanek
Cytat(devwebit @ 13.01.2012, 11:34:50 ) *
nazwa bazy jest w zmiennej $db a nie w $nazwa

Zmień
Kod
mysql_select_db($db);

na

Kod
mysql_select_db($nazwa);


działa smile.gif wielkie dzięki!!!
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.