Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]update rekordu
peklo
post 6.03.2014, 12:49:00
Post #1





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


Witam. Tak jak w temacie mam problem z update rekordu wyciagnietego z bazy.
W uproszczeniu mam taki formularz w pierwszym pliku

  1. include ('update.php');
  2. <form action="" class="cmxform" method="post" id="signupForm" style='display: inline'>
  3. <?php
  4. try
  5. {
  6. $pdo = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  7. $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  8. $stmt = $pdo -> prepare('SELECT id,nazwa_ogloszenia from ogloszenia');
  9. while($row = $stmt->fetch())
  10. {
  11. ?>
  12. <table width="90%" border="0" cellspacing="0" cellpadding="0">
  13. <tr>
  14. <th width="25%" scope="col">Tytuł:<?php echo $row['nazwa_ogloszenia'] ?></th>
  15. <th width="32%" scope="col">
  16. <?php
  17. if( !(isset( $_POST['delogl'] ) ) ) { ?>
  18. <input type="submit" name="delogl" class="przycisk" value="Zakoncz" />
  19. <?php
  20. } else {
  21. $profog=new profil;
  22. $profog->delogl();
  23. }
  24. ?>
  25. </th>
  26. <th scope="col">Nr ogłoszenia: <?php echo $row['id'] ?></th>
  27. </tr>
  28. </table>
  29. <?php
  30. }
  31. $stmt -> closeCursor();
  32. }
  33. catch(PDOException $e)
  34. {
  35. echo 'Wystapił blad biblioteki PDO: ' . $e->getMessage();
  36. }
  37. ?>
  38. </form>



i teraz klasę do update rekordu - plik update.php

  1. class profil {
  2. public function delogl() {
  3. $success = false;
  4. try{
  5. $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  6. $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  7. $sql = 'UPDATE ogloszenia SET aktywne=:aktywne WHERE id=:id';
  8. $stmt = $con->prepare( $sql );
  9. $stmt->bindValue(':aktywne', 0, PDO::PARAM_INT);
  10. $stmt->bindValue(':id',$_GET['id'], PDO::PARAM_INT);
  11. $stmt->execute();
  12. $conn = null;
  13. }catch( PDOException $e ) {
  14. echo 'Wystapił blad biblioteki PDO: ' . $e->getMessage();
  15. }
  16. }
  17. }
  18.  

Problem w tym że nie chce mi wykonać update rekordu. jak zmienie w zapytaniu na update set id=10 to updatuje. O co kaman. Prosze o pomoc

Ten post edytował peklo 6.03.2014, 13:11:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
nospor
post 6.03.2014, 12:51:01
Post #2





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




Sie zdecyduj..... UPDATE czy USUWANIE??

Zas do problemu: nigdzie nie widze, bys GETem przesylal id.... ciezko samemu sprawdzic czy cos tam jest czy nie?

Lektura obowiazkowa:
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 12:54:54
Post #3





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


update,update oczywiscie

Ten post edytował peklo 6.03.2014, 12:55:32
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 12:58:29
Post #4





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




To ja wiem ze UPDATE. TAk tylko sie czepnalem. Bardziej mnie interesuje czy zastosowales sie do linnka co ci podalem no i co z tym ID w get? Nie odpowiedziales na wskazanie tego bledu smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 12:58:48
Post #5





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


a czy tj dobrze zrobione tzn ten przycisk?
  1. <?phpif( !(isset( $_POST['delogl'] ) ) )
  2. {
  3. ?>
  4. <input type="submit" name="delogl" class="przycisk" value="Zakoncz" />
  5. <?php
  6. } else
  7. {$profog=new profil;$profog->delogl();
  8. }
  9. ?>
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 13:00:10
Post #6





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




Przycisk jak przycisk, wysyla formularz jesli jest w formularzu. Nadal jednak nie widze, bys tam gdziekolwiek przesylal ID. Przeciez pisze po polsku. Wiec, sie pytam jeszcze raz, gdzie tam wysylasz ID? Bo w kodzie co pokazales to nigdzie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:02:56
Post #7





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


zaraz to zrobie tzn wkleje żeby wyswietliło mi komunikat bledów

Nie zdefiniowana wartość
Notice: Undefined variable: id in D:\Apache2.2\htdocs\motojob\kod\profil\class_profil.php on line 49
$stmt->bindValue(':id',$id, PDO::PARAM_INT);
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 13:03:45
Post #8





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




Toc ci tlumacze po raz 100. Nigdzie tego ID nie przysylasz. Z kosmosu samo sie nie wezmie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:06:10
Post #9





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


chidzi o <form>?
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 13:07:06
Post #10





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




No , na przyklad o form. FOrmem wysyla sie pola formularza jakie sie chce


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:10:20
Post #11





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


cały pierwszy kod (przykładowo plik test.php) jest w form czyli
<form>
kod php
</form>
Na początku kodu mam include do pliku z klasą update

Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 13:13:00
Post #12





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




Rety... ale samo FORM nie wystarczy. Muszą tez tam byc pola, ktore chcesz wyslac. No ile razy o tym mozna pisac??


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:20:45
Post #13





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


mam zrobione tak
<form action="" class="cmxform" method="post" id="signupForm" style='display: inline'>

napisałem tak w uproszczeniu
Go to the top of the page
+Quote Post
markuz
post 6.03.2014, 13:28:59
Post #14





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Widzę, że @nospor stracił cierpliwość więc dam Ci podpowiedź:

  1. <input type="hidden" name="id" value="<?php echo $row['id'] ?>">


$_GET['id']
$_POST['id']

Ten post edytował markuz 6.03.2014, 13:30:56


--------------------
Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:36:32
Post #15





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


no właśnie to bylo takie proste, zapomniałem o tym ukrytym polu dzięki:). Tylo że mam jeszcze jeden problem, a mianowicie usuwa mi ale nie to id co trzeba
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 13:47:32
Post #16





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




A ten znowu z tym usuwaniem :/ Skup sie wkoncu.

Pewnie w formie masz wiele pol z ID, wiec nic dziwnego ze UPDATUJE ci ostatni


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 13:54:10
Post #17





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


oj sorki nospor pomylka update oczywiscie po raz kolejny
To jak mam pobrać ten właściwy bo juz się pogubiłem
w zapytaniu mam tak

'UPDATE ogloszenia SET aktywne=0 WHERE id="'.$_POST['id'].'"';

Ten post edytował peklo 6.03.2014, 13:57:45
Go to the top of the page
+Quote Post
nospor
post 6.03.2014, 14:01:27
Post #18





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




Zamiasts jednego FORMA z kupą pol z id, masz miec tyle formow ile wyswietlasz rekordow. Wowczas kliajac UPDATE wyslesz tylko ten form i to pole, ktore cie interesuje


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
peklo
post 6.03.2014, 14:07:48
Post #19





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


aaaa to zrobię sobie tak jak mam gdzie indziej poprostu checkboxa
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:42