Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Updateowanie rekordu w bazie
imlegend
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


Witam , mam skrypt zapisujący zdjęcia na serwer, a info do bazy.
Chodzi mi o fragment tego skryptu odpowiadający za update rekordu w bazie.
Nie wiem jak powiązać wstawiane dane z id. Mianowicie gdy wstawiam wartość id = 1 - zapisuje bez problemu,
ale gdy daje "where id = $id" wtedy nic się nie dzieje. Chodzi o to żeby rekord był zupdatowany dla użytkownika o określonym id.


  1.  
  2.  
  3. //This is the directory where images will be saved
  4. $target = "wyslane/";
  5. $target = $target . basename( $_FILES['photo']['name']);
  6.  
  7. //This gets all the other information from the form
  8. $id =$_POST['id'];
  9. $name=$_POST['name'];
  10.  
  11. $pic=($_FILES['photo']['name']);
  12.  
  13. // Connects to your Database
  14. mysql_connect("x", "x", "x") or die(mysql_error()) ;
  15.  
  16. //Writes the information to the database
  17. //mysql_query("INSERT INTO `employees` VALUES ('$name', '$pic')") ;
  18.  
  19.  
  20.  
  21. mysql_query("UPDATE users SET name='$name', photo='$pic' WHERE id = $id");
  22.  
  23. //Writes the photo to the server
  24. if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
  25. {
  26.  
  27. //Tells you if its all ok
  28. echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
  29.  
  30. }
  31. else {
  32.  
  33. //Gives and error if its not
  34. echo "Sorry, there was a problem uploading your file.";
  35. }
  36.  
  37.  
  38.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widac POSTem nie idzie ID.... logiczne....

print_r($_POST);
i wszystko jasne
Go to the top of the page
+Quote Post
imlegend
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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




Ech, jednak za szybko odtrąbiłem sukces, miałem wpisane id =1 zamiast id=$id, dlatego zapisalo.
po dopisaniu
print_r($_POST);

wyskakuje mi:

Array ( [name] => gamling )

dalej nie wiem jak to interpretować , może spróbuję innej metody niż POST? ( próbowałem już z GET)

Ten post edytował imlegend 29.01.2014, 11:07:16
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No przeciez widzisz, ze w post nic nie masz, dokladnie o tym ci pisalem.

Skad mam wiedziec gdzie ty masz to ID usera? To ty powinienes wiedziec, gdzie to id przetrzymujesz, nie sadzisz?? Moze w sesji? Moze w ciastku ? Moze pod biurkiem? Ty to wiesz, ty to pisales
Go to the top of the page
+Quote Post
imlegend
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


Dobra, wciąż próbuje ale dalej nie wiem, tu podaje skrypt który odwołuje się do poprzedniego, chyba tu jest ten id, który jest potrzebny.
Swoja drogą skoro przez $_post['name'] dostaje zmienną name to nie wiem dlaczego nie dostaje id. Kod:
  1. <?php
  2.  
  3. require 'config2.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  4. require_once 'user.class.php';
  5.  
  6. /**
  7.  * Tylko dla zalogowanych użytkowników
  8.  */
  9. if (!user::isLogged()) {
  10. echo '<p class="error">Przykro nam, ale ta strona jest dostępna tylko dla zalogowanych użytkowników.</p>';
  11. }
  12.  
  13. else {
  14. $id = $_GET['id'];
  15.  
  16. /**
  17.   * Sprawdź czy użytkownik o podanym ID istnieje
  18.   */
  19. $userExist = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE id = '$id'"));
  20.  
  21. // Użytkownik nie istnieje
  22. if ($userExist[0] == 0) {
  23. die ('<p>Przykro nam, ale użytkownik o podanym identyfikatorze nie istnieje.</p>');
  24. }
  25.  
  26. /**
  27.   * Użytkownik istnieje, tak więc pokaż jego profil
  28.   */
  29.  
  30. // Zapisz dane użytkownika o podanym ID, do zmiennej $profile
  31. $profile = user::getDataById ($id);
  32.  
  33. echo '<h1>Profil użytkownika '.$profile['login'].'</h1>';
  34.  
  35. echo '<b>Nick:</b> '.$profile['login'].'<br />';
  36. echo '<b>Email:</b> '.$profile['email'].'<br />';
  37. echo '<b>Obiekt:</b> '.$profile['obiekt'].'<br />';
  38.  
  39. echo '<b>Typ obiektu:</b> '.$profile['typ'].'<br />';
  40. echo '<b>Kod pocztowy:</b> '.$profile['kod'].'<br />';
  41.  
  42. echo '<b>Adres:</b> '.$profile['adres'].'<br />';
  43.  
  44. echo '<b>Poczta:</b> '.$profile['poczta'].'<br />';
  45.  
  46. echo '<b>Tel. stacjonarny:</b> '.$profile['tels'].'<br />';
  47.  
  48. echo '<b>Tel. komórkowy:</b> '.$profile['telk'].'<br />';
  49. echo '<b>Adres strony internetowej:</b> '.$profile['www'].'<br />';
  50.  
  51.  
  52.  
  53. echo '<img src="wyslane/'.$profile[haslo].'.'.$profile[ext].'" />';
  54.  
  55.  
  56. }
  57.  
  58.  
  59.  
  60.  
  61. ?>
  62.  
  63.  
  64. <form enctype="multipart/form-data" action="add.php" method="post">
  65. Name: <input type="text" name="name"><br>
  66.  
  67.  
  68. Photo: <input type="file" name="photo"><br>
  69. <input type="submit" value="Add">
  70. </form>
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Swoja drogą skoro przez $_post['name'] dostaje zmienną name to nie wiem dlaczego nie dostaje id.
Bo name wpisujesz w formularzu...ID nie..... samo w magiczny sposob sie nie doda
Go to the top of the page
+Quote Post
imlegend
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


no ale mam id w bazie, więc powinno przejśc, chyba że coś mylę
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Co ty masz w ogóle za problem? Już nie kapuję.

Zrób
  1. print_r($_GET);die;
i zobacz czy masz tam id
Go to the top of the page
+Quote Post
imlegend
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


no mam tablice :
Array ( )
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Pusta tablica = puste $id
Czemu nie trzymasz id usera w sesji?
Go to the top of the page
+Quote Post
imlegend
post
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


a jak robie tak: dopisuję

i
  1. $login = $_SESSION['login'];


oraz

  1. mysql_query("UPDATE users SET name='$name', photo='$pic' WHERE $login = marek");


żeby wstawial po loginie to otrzymuje wypisanie
  1. print_r($_SESSION);die;
: Array ( [login] => marek [pass] => f6acf43798bad672fec4735cd3b07e3f )
ale w bazie nic nie jest dodane...
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


WHERE kolumna = 'wartosc'. U ciebie jest to kolumna marek = kolumna marek.
Go to the top of the page
+Quote Post
imlegend
post
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


pisałem też
  1. WHERE $login = 'marek'

ale nie dodaje mi danych do rekordu
Go to the top of the page
+Quote Post
Turson
post
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


WHERE login='marek' a nie $login
Go to the top of the page
+Quote Post
imlegend
post
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 22.12.2012

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


Dobra, id jakoś nie mogłem wyłuskać, ale w sesji był login, więc zrobiłem dodawanie przez login.
Dzięki wszystkim, a zwłaszcza Tursonowi za przypomnienie o sesji.

Ten post edytował imlegend 29.01.2014, 18:38:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:34