Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Nie dziala update - gdzie problem?
dolar
post 13.12.2016, 10:20:28
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Zrobilam strone do edycji wpisow na blogu... nie dziala mi UPDATE. Wg mnie ma wskazany rekord, ktory ma zedytowac, wszystko powinno grac, a jednak cos jest nei halo. Oto kod :



  1.  
  2. include 'db.php';
  3. $baza = Db::getInstance();
  4.  
  5.  
  6. if (array_key_exists('login', $_SESSION) && array_key_exists('haslo', $_SESSION)) {
  7. $czyZalogowany = true;
  8. } else {
  9. header('Location: /logowanie.php');
  10. }
  11.  
  12. $akcja = $_GET['akcja'];
  13. $id = (int)$_GET['id'];
  14.  
  15. if ($akcja == 'edytuj' && $id > 0) {
  16.  
  17. $sql = 'SELECT * FROM blog WHERE id='.$id;
  18. $zapytanieSelect = mysqli_query($baza, $sql);
  19. $wpis = $zapytanieSelect->fetch_all(MYSQLI_ASSOC);
  20.  
  21. }
  22.  
  23. if (empty($wpis[0])) {
  24. $wpis = array(
  25. 0 => array(
  26. 'tytul' => '',
  27. 'tresc' => ''
  28. ));
  29. }
  30.  
  31. $tytul=$wpis[0]['tytul'];
  32. $tresc=$wpis[0]['tresc'];
  33.  
  34. if (array_key_exists('zapisz', $_POST)){
  35. $sql4 = "UPDATE `blog` SET `tytul`='$tytul',`tresc`='$tresc' WHERE id=`$id`";
  36. $edytuj = mysqli_query($baza, $sql4);
  37. echo "Post zedytowany";
  38. }




  1.  
  2. </head>
  3. <form method="post">
  4. <label for="tytul">Tytul:</label>
  5. <input type="text" id="tytul" name="tytul" value="<?php echo $tytul ?>"/>
  6. <br/>
  7. <label for="tresc">Tresc:</label>
  8. <textarea id="tresc" name="tresc"><?php echo $tresc ?>
  9. <br/>
  10. <input type="submit" name="zapisz" value="zapisz"/>
  11.  
  12.  
  13. </form>
  14. </body>
  15. </html>
  16.  
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
markonix
post 13.12.2016, 10:42:26
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


http://forum.php.pl/index.php?showtopic=44...t=0&start=0 punkt 2.

Ten post edytował markonix 13.12.2016, 10:42:43


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 10:49:06
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Niestety wyskakuje blad : Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future

Go to the top of the page
+Quote Post
viking
post 13.12.2016, 10:54:25
Post #4





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

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


To się zdecyduj czego używasz, w tych zapytaniach powyżej jest wyraźnie mysqli.


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 10:57:47
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


No dobra fakt. Moj blad. Wyskoczylo mi :
Warning: mysqli_query() expects at least 2 parameters, 1 given in /blog/wpis.php on line 43

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /blog/wpis.php on line 43

Czyli ze nie widzi jakby moich zmiennych? $tytul i $tresc?
Go to the top of the page
+Quote Post
markonix
post 13.12.2016, 11:02:13
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Nie, te błędy dotyczą argumentów przesyłanych do funkcji.
Zapytanie to drugi argument, a pierwszy to połączenie z bazą.

Ten post edytował markonix 13.12.2016, 11:02:30


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 11:19:37
Post #7





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Dzisiaj peirwszy raz uzywam UPDATE i chyba jeszcze nad tym posiedze bo nei rozumiem gdzie jest w tej funkcji znajduje se argument - bo z tego o wyskakuje to jest b lad w argmentach gdzies? chce 2 a ja mam tylko 1?
Go to the top of the page
+Quote Post
viking
post 13.12.2016, 11:27:33
Post #8





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

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


Jak czytać dokumentację PHP?

W podanych liniach wymagane jest przekazanie adekwatnej liczby parametrów.


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 11:33:34
Post #9





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Toc ma wszystko podane... :/. Skad ma edytowac, co ma edytowac... czytam i czytam i nie widze bledu, chyba ze moze w zapisie?
Go to the top of the page
+Quote Post
viking
post 13.12.2016, 11:44:42
Post #10





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

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


A co jest w tej linii 43 pliku /blog/wpis.php?


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 11:46:36
Post #11





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Ok wyeliminowalam tamte bledy, ale nadal nie chce mi sie edytowac w bazie danych. Oto kod:

  1.  
  2.  
  3. include 'db.php';
  4. $baza = Db::getInstance();
  5.  
  6.  
  7. if (array_key_exists('login', $_SESSION) && array_key_exists('haslo', $_SESSION)) {
  8. $czyZalogowany = true;
  9. } else {
  10. header('Location: /logowanie.php');
  11. }
  12.  
  13. $akcja = $_GET['akcja'];
  14. $id = (int)$_GET['id'];
  15.  
  16. if ($akcja == 'edytuj' && $id > 0) {
  17.  
  18. $sql = 'SELECT * FROM blog WHERE id='.$id;
  19. $zapytanieSelect = mysqli_query($baza, $sql);
  20. $wpis = $zapytanieSelect->fetch_all(MYSQLI_ASSOC);
  21.  
  22. }
  23.  
  24. var_dump($wpis);
  25.  
  26. if (empty($wpis[0])) {
  27. $wpis = array(
  28. 0 => array(
  29. 'tytul' => '',
  30. 'tresc' => ''
  31. ));
  32. }
  33.  
  34. $tytul=$wpis[0]['tytul'];
  35. $tresc=$wpis[0]['tresc'];
  36.  
  37.  
  38. if (array_key_exists('zapisz', $_POST)){
  39. $sql4 = "UPDATE `blog` SET `tytul`=[$tytul],`tresc`=[$tresc] WHERE `id`=[$id],";
  40. $edytuj = mysqli_query($baza, $sql4);
  41. $zapytaj = mysqli_query($baza, $sql4) or die('Nastapil blad w polaczeniu w zapytaniu do bazy '. mysqli_error($baza));
  42. echo "Post zedytowany";
  43. }
  44.  
  45.  
Go to the top of the page
+Quote Post
viking
post 13.12.2016, 11:55:14
Post #12





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

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


A co to niby za nawiasy [] w zapytaniu?


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 11:57:31
Post #13





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Wywalenie nawiasow nic nie pomaga - a bo tak probowalam na rozne sposoby ;p

  1. $sql4 = "UPDATE `blog` SET `tytul`=$tytul,`tresc`=$tresc WHERE `id`=$id,";
Go to the top of the page
+Quote Post
nospor
post 13.12.2016, 11:59:24
Post #14





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




Masz cale mase bledow w zapytaniu.
Wyswietla ci w ogole ta linijka
or die('Nastapil blad w polaczeniu w zapytaniu do bazy '. mysqli_error($baza));
blad?
Jesli nie, to w ogole tam nei dochodzi.

ps: i po grzyba masz dwa razy wykonywanei to samo zapytanie ....


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

"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
dolar
post 13.12.2016, 12:26:40
Post #15





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Niestety wywala taki blad:

Nastapil blad w polaczeniu w zapytaniu do bazyYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,`tresc`=tresc probna WHERE `id`=11,' at line 1
Go to the top of the page
+Quote Post
viking
post 13.12.2016, 12:31:59
Post #16





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

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


Po id ma nie być przecinka, treść jest stringiem więc jako string ma byc potraktowany.


--------------------
Go to the top of the page
+Quote Post
dolar
post 13.12.2016, 12:35:05
Post #17





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Hmm faktycznie bledu juz nie wywala ale dalej jakby sie nie edytuje... masakra ile czasu mi to schodzi tongue.gif

Dobra po wpisaniu na sucho tytulu i tresci edytuje! jupi!!! wiec pewnie cos jest nie tak ze zmiennymi moimi

Ten post edytował dolar 13.12.2016, 12:40:57
Go to the top of the page
+Quote Post
nospor
post 13.12.2016, 12:52:48
Post #18





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




Cytat
wiec pewnie cos jest nie tak ze zmiennymi moimi
No ba.... spojrz dokladnie na swoj kod. przeciez do bazy wkladasz dokladnie to samo co pare linijek wczesniej z bazy pobrales... wiec niby jakim cudem ma sie roznic.... Do bazy masz wkladac dane z forma, no nie?


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

"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
dolar
post 13.12.2016, 12:56:35
Post #19





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Cytat(nospor @ 13.12.2016, 12:52:48 ) *
No ba.... spojrz dokladnie na swoj kod. przeciez do bazy wkladasz dokladnie to samo co pare linijek wczesniej z bazy pobrales... wiec niby jakim cudem ma sie roznic.... Do bazy masz wkladac dane z forma, no nie?


O BOZE! DZIALA!

  1. $tytul1=$_POST['tytul'];
  2. $tresc1=$_POST['tresc'];
  3.  
  4. $czyPoprawione=false;
  5.  
  6. if (array_key_exists('zapisz', $_POST)){
  7. $sql4 = "UPDATE `blog` SET `tytul`='$tytul1',`tresc`='$tresc1' WHERE `id`=$id";
  8. var_dump($tresc1);
  9. $edytuj = mysqli_query($baza, $sql4);
  10. $zapytaj = $edytuj or die('Nastapil blad w polaczeniu w zapytaniu do bazy'. mysqli_error($baza));
  11. $czyPoprawione=true;
  12. }


Dziekuje! biggrin.gif
Go to the top of the page
+Quote Post
nospor
post 13.12.2016, 12:58:42
Post #20





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




A teraz idz i poczytaj o escapowaniu danych, albo o bindowaniu. Bo jak teraz wlozysz apostrof w jakiej pole forma to dostaniesz ladny blad.


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

"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

2 Stron V   1 2 >
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: 13.08.2025 - 23:01