Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]update rekordu nie działa.
Glukozamina
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Witam mam sobie skrypt. Gdy jestem zalogowany pojawia mi sie opcja edytuj profil następnie przechodze do edytuj profil wszystko pięknie ładnie się wyświetla tam gdzie chcę lecz gdy chcę zrobic update jednej komórki nie ma żadnego błędu lecz też nic się nie dzieje. Zapytanie wziąłem z phpmyadmin dodając tam ręcznie jakąś tresc do jednego z pół a następnie przerobiłem troszke.

  1. <?php
  2.  
  3.  
  4. /*Nawiązanie połączenia z bazą*/
  5.  
  6.   if (!$db_lnk = @mysql_connect("mysql3.yoyo.pl", "db486994", "xxxxxxxxxxxx")){
  7.    echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  8.    return;
  9.   }
  10.  
  11.   if(!@mysql_select_db('db486994')){
  12.    echo('Wystąpił błąd podczas wyboru bazy danych: biblioteka<BR>');
  13.    @mysql_close();
  14.    return;
  15.   }
  16.  
  17.  
  18.  
  19.  
  20.  
  21. $n = $_SESSION['zalogowany'];
  22.  
  23. $query= "SELECT * FROM Users WHERE Nazwa = '$n' ";
  24.  
  25. $result = mysql_query($query, $db_lnk);
  26.  
  27. if(!$result){
  28.   echo('Wystąpił błąd: nieprawidłowe zapytanie...<BR>');
  29.   echo mysql_errno($db_lnk) . ": " . mysql_error($db_lnk) . "\n";
  30.   @mysql_close();
  31.   exit;
  32. }
  33.  
  34. $miejscowosc = $_GET['miejscowosc'];
  35.  
  36. $id = $data['Id'];
  37.  
  38. $query = "UPDATE `db486994`.`Users` SET `skad` = '$miejscowosc' WHERE `Users`.`Id` = '$id' LIMIT 1";
  39.  
  40.   if(!mysql_query($query, $db_lnk)){
  41.    echo 'Wystąpił błąd: zapytanie zostało odrzucone...<br />Zapytanie: <pre>' . $query . '</pre>Odpowiedź MySQL: <pre>' . mysql_error( $db_lnk ) . '</pre>';
  42.    @mysql_close();
  43.    return;
  44.   }
  45.  
  46. while($data = mysql_fetch_assoc($result)){
  47.  
  48. $id = $data['Id'];
  49. $gg = $data['Email'];
  50. $skad = $data['skad'];
  51.  
  52. $nick = $data['Nazwa'];
  53. }
  54. echo "$miejscowosc";
  55.  
  56. echo '<table><tr><td>Nick'.$id.'</td><td>'.$nick.'</td></tr>
  57.  
  58.   <tr><td>Gadu Gadu</td><td>'.$gg.'</td></tr>
  59.  
  60.   <tr><td>Miejscowosc</td>';
  61.  
  62. echo "  <td><form action='info/profiledit.php' method='GET'>
  63.   <input type='text' name='miejscowosc' value='$skad'></td></tr>
  64.   <tr><td><input type='submit' value='Edytuj'></form></td></tr>";
  65.  
  66. echo '</table>';
  67.  
  68. printf ("Zaktualizowanych rekordów: %d\n", mysql_affected_rows());
  69.  
  70. ?>
  71.  
  72. <?php
  73. if(!@mysql_close()){
  74.   echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
  75. }
  76. ?>


Żadnego błędu mi nie wywala ani też skrypt nie działa. Kiedy ide do php my admin i ręcznie wpisze jakąś miejscowosc po kliknięciu edytuj kasuje mi się ona w tabeli. Proszę powiedzcie mi jak to powinenem zrobic ? Pozdrawiam
Go to the top of the page
+Quote Post
simonX
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


Nie musisz podawac za kazdym razem nazwy bazy danych


Sproboj tak:
Kod
"UPDATE Users SET skad='$miejscowosc' WHERE id= '$id' LIMIT 1";


Ten post edytował simonX 1.08.2008, 22:20:59


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





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Hmmmh nadal nie działa. A gdyby zapytanie przedstawic jakos w postaci
  1. <?php
  2. mysql_query(Twoje_zapytanie) or die(mysql_error());
  3. ?>
Kiedys przestawialem cos tam i mi jeden skrypt zaczął działac. Mógł by ktos to przerobic do takiej postaci ? Bo mnie to nie wyszło  ;D
Go to the top of the page
+Quote Post
Max Damage
post
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Znaczy się chodzi ci o coś takiego?
  1. <?php
  2. mysql_query("UPDATE Users SET skad='$miejscowosc' WHERE id='$id' LIMIT 1") or die (mysql_error());
  3. ?>

Poza tym wydaje mi se że to id masz w bazie niepowtarzalne więc nie musisz używać LIMIT.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
Glukozamina
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Hmmmh no nie wiem co jest nie tak nawet kiedy w zapytaniu wpisałem
  1. <?php
  2. "UPDATE Users SET skad='szczecin' WHERE id= '$id' ";
  3. ?>
nic się nie zmieniło.
Go to the top of the page
+Quote Post
simonX
post
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 30.07.2008

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


Npisze caly skrypt jak ja bym to napisał:



session_start(); /*Nie miales mechanizmu rozpoczynającego sesje*/
/*Teraz łączę się z bazą danych*/
$db_lnk = mysql_connect("mysql3.yoyo.pl", "db486994", "xxxxxxxxxxxx")or die("Jakis komunikat ");
mysql_select_db('db486994');
$_SESSION['zalogowany']=$n;
$result = mysql_query("SELECT * FROM Users WHERE Nazwa = '$n' ");
if(mysql_num_rows($result)>0){
echo('Taka nazwa widniej juz w bazie <big>Wprowadz inna</big>');
exit;

}
$miejscowosc = $_GET['miejscowosc'];
$id = $data['Id'];
$query=mysql_query( "UPDATE Users SET skad='$miejscowosc' WHERE id= '$id' LIMIT 1");
if(!$query){
echo "Niestety nie mogłem aktualizować bazy danych"
exit;
}
-------------------------------------------------------------------------------
/*Dalej tak miales na koncu musisz wskazac jakie polaczenie chcesz zamknac*/
<?php
if(!@mysql_close($db_lnk)){
echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
}
?>

Jak teraz nie zadziala to nie mam pojecia,tez dopiero sie ucze php ale mam nadzieje ze jakos Cie naprowadze przynajmniej na ten błąd i sam go odkryjesz tongue.gif .


Ten post edytował simonX 2.08.2008, 15:28:13


--------------------
Go to the top of the page
+Quote Post
Glukozamina
post
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Hmmmmh czego sie tyczy ten fragment ? 

  1. <?php
  2. if(mysql_num_rows($result)>0){
  3. echo('Taka nazwa widniej juz w bazie <big>Wprowadz inna</big>');
  4. ?>


Bo włąsnie to mi się wyświetla : Taka ....
Go to the top of the page
+Quote Post
Max Damage
post
Post #8





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Zapytanie UPDATE nie chodzi ci ponieważ Najpierw próbujesz użyć zmiennej id
  1. <?php
  2. $id = $data['Id'];
  3. ?>

A dopiero kilka wierszy poniżej się o nią pytasz.
Funkcja mysql_num_rows zwraca liczbę wierszy w wyniku. Jest więcej niż zero więc wyświetla się napis. Mozna nie lubic manuala ale warto do niego czasem zaglądać.....
To też raczej nie zadziała tak jak chcesz :
  1. <?php
  2. echo "$miejscowosc";
  3. ?>

Powinno być tak:
  1. <?php
  2. echo $miejscowosc;
  3. ?>

Coś mi się też zdaje że w każdym pliku piszesz połączanie z bazą. Lepiej to sobie napisać w osobnym pliku jako funkcje i dołączać poprzez include. Bo jak zmienisz nagle serwer to będziesz wszędzie musiał to zmieniać.

Ten post edytował Max Damage 2.08.2008, 16:15:12


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
Glukozamina
post
Post #9





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Tamto echo miejscowosc to sprawdzalem czy w ogole ta miejscowosc jest pobierana . No własnie to Id cos mi nie pasowało więc w jaki sposób je przekazac tam wyżej ?
Go to the top of the page
+Quote Post
nowotny
post
Post #10





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


W formularzu robisz sobie na przykład tak:
  1. <form action='info/profiledit.php?id=$id' method='GET'>

lub ewentualnie dodajesz pole ukryte:
  1. <input type="hidden" name="id" value="$id">


i teraz
  1. <?php
  2. $id = $data['Id'];
  3. ?>

zamieniasz sobie na
  1. <?php
  2. $id=$_GET['id'];
  3. ?>


Ten post edytował nowotny 2.08.2008, 17:25:38
Go to the top of the page
+Quote Post
Glukozamina
post
Post #11





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Dobra rzeczywiscie cos z tym id jednak metoda nowotnego nie działa chyba ,ze ja cos zrobiłem . 

  1. <?php
  2.  
  3.  
  4. /*Nawiązanie połączenia z bazą*/
  5.  
  6.   if (!$db_lnk = @mysql_connect("mysql3.yoyo.pl", "db486994", "xxxxxxxxx")){
  7.    echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  8.    return;
  9.   }
  10.  
  11.   if(!@mysql_select_db('db486994')){
  12.    echo('Wystąpił błąd podczas wyboru bazy danych: biblioteka<BR>');
  13.    @mysql_close();
  14.    return;
  15.   }
  16.  
  17.  
  18. $n = $_SESSION['zalogowany'];
  19.  
  20. $query= "SELECT * FROM Users WHERE Nazwa = '$n' ";
  21.  
  22. $result = mysql_query($query, $db_lnk);
  23.  
  24. if(!$result){
  25.   echo('Wystąpił błąd: nieprawidłowe zapytanie...<BR>');
  26.   echo mysql_errno($db_lnk) . ": " . mysql_error($db_lnk) . "\n";
  27.   @mysql_close();
  28.   exit;
  29. }
  30.  
  31. $miejscowosc = $_GET['miejscowosc'];
  32.  
  33. echo $miejscowosc;
  34.  
  35. $id=$_GET['Id'];
  36.  
  37. $query = "UPDATE Users SET skad='$miejscowosc' WHERE id='$id'";
  38.  
  39.   if(!mysql_query($query, $db_lnk)){
  40.    echo 'Wystąpił błąd: zapytanie zostało odrzucone...<br />Zapytanie: <pre>' . $query . '</pre>Odpowiedź MySQL: <pre>' . mysql_error( $db_lnk ) . '</pre>';
  41.    @mysql_close();
  42.    return;
  43.   }
  44.  
  45.  
  46. while($data = mysql_fetch_assoc($result)){
  47.  
  48. $id = $data['Id'];
  49.  
  50. $gg = $data['Email'];
  51. $skad = $data['skad'];
  52.  
  53. $nick = $data['Nazwa'];
  54. }
  55. echo "$miejscowosc";
  56.  
  57. echo '<table><tr><td>Nick'.$id.'</td><td>'.$nick.'</td></tr>
  58.  
  59.   <tr><td>Gadu Gadu</td><td>'.$gg.'</td></tr>
  60.  
  61.   <tr><td>Miejscowosc</td>';
  62.  
  63. echo "  <td><form action='info/profiledit.php?id=$id' method='GET'>
  64.   <input type='text' name='miejscowosc' value='$skad'></td></tr>
  65.   <tr><td><input type='submit' value='Edytuj'></form></td></tr>";
  66.  
  67. echo '</table>';
  68.  
  69. printf ("Zaktualizowanych rekordów: %d\n", mysql_affected_rows());
  70.  
  71. ?>
  72.  
  73. <?php
  74. if(!@mysql_close()){
  75.   echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
  76. }
  77. ?>





Zrobiłęm sobie zapytanie 

  1. <?php
  2. $query = "UPDATE Users SET skad='$miejscowosc' WHERE id='1'";
  3. ?>


I działało . Czyli nie pobiera id . 
Go to the top of the page
+Quote Post
nowotny
post
Post #12





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


"Id" to nie to samo co "id"...
Go to the top of the page
+Quote Post
Glukozamina
post
Post #13





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


Najpierw dałem id tak jak pisałeś jednak to nie działało wpisałem Id i to też nie działa tak dla pewności ;D.
Go to the top of the page
+Quote Post
Kicok
post
Post #14





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
W formularzu robisz sobie na przykład tak:
  1. <form action='info/profiledit.php?id=$id' method='GET'>


lub ewentualnie dodajesz pole ukryte:
  1. <input type="hidden" name="id" value="$id">


Drugie rozwiązanie jest poprawne. Jeżeli formularz wysyłasz metodą GET, to zmienne znajdujące się w adresie ( action ) są ignorowane.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Glukozamina
post
Post #15





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

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


HAH działa dziękuje wam za przekazaną wiedze . Macie po dziękuje. smile.gif
Go to the top of the page
+Quote Post

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 - 05:36