Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]edytowanie/aktualizacja/dodawanie rekordu
Michał90
post 21.01.2011, 15:37:32
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Witam,
mam zrobiony formularz, któr wygląda następująco.

1. Wybieram temat(z bazy)
2. Wpisuję tresc
3. Klikam wyślij

4. Rekord zostaje dodany do bazy pod ten tytuł (np. wybrałem tytuł ABC i w nim bedzie ta treść)

A więc mam prosty formularz dodający rekordy do bazy.
Jak więc zrobić teraz tak:
Wybieram tytuł i jeśli jest coś wpisane do tego rekordu to mogę go edytować za pomocą tego formularza, a nie za każdym razem wchodzenie do phpmyadmin..

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Daiquiri
post 21.01.2011, 15:50:23
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Napisz w czym konkretnie masz problem.

1. Wybierasz jakiś konkretny tytuł (np. z listy).
2. Pobierasz dane z bazy dla tego tytułu, np. do postaci $tytul.
3. W formularzu (jeżeli to zwykły input) w miejscu value="" wybranego pola podpinasz $tytul, np. value="<?php echo $tytul;?>".
4. Obsługujesz formularz tak, aby zrobił UPDATE do bazy.
Go to the top of the page
+Quote Post
Michał90
post 21.01.2011, 15:58:49
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Dobra od początku biggrin.gif

Chce użyskać taki efekt:
1. Wybieram z listy <option> konkretny tytuł (tytuły pobieram z bazy)
2. Po wybraniu tytułu chce, żeby w polu <textarea> zostały pobrane informacje z bazy, które należą do tego tytułu żebym mógł ten opis edytować.
3. następnie wysyłam to ponownie do bazy.

Baza wygląda tak:
NAZWA BAZY > NAZWA TABELI> id, tytul, opis, tagi

Aktualnie mam tak zrobione, że mogę tylko dodawać opisy ale nie mogę ich edytować, a chciałbym np. edytować dany opis jeśli popełnię jakiś błąd ortograficzny itd.
Go to the top of the page
+Quote Post
PanGuzol
post 21.01.2011, 16:09:41
Post #4





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


  1. <textarea>Aktualna treśc</textarea>


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
Daiquiri
post 21.01.2011, 16:19:36
Post #5





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Pokaż zatem swój kod. Pisać za Ciebie nie będziemy.
Go to the top of the page
+Quote Post
Michał90
post 21.01.2011, 16:33:27
Post #6





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Prosze:

  1. <?php
  2. $db = new mysqli('localhost','xxxx','xxxx','xxxx');
  3. mysqli_query($db,'SET NAMES `utf8`');
  4. $sqlnowe = mysqli_query($db,'SELECT `tytul` FROM `moje` ORDER BY `id` DESC ');
  5.  
  6. ?>
  7. <html>
  8. <head>
  9. </head>
  10. <body>
  11. <form action="dodawanie.php" method="post">
  12. <select name="tytul">
  13. <?php while ($rownowe = mysqli_fetch_array($sqlnowe)) { ?>
  14. <option><? echo $rownowe['tytul']; ?></option><?php };?>
  15.  
  16. </select>
  17.  
  18.  
  19. opis<br />
  20. <textarea name="opismax" cols="50" rows="10">Proszę, wpisz tutaj jakiś tekst...</textarea>
  21.  
  22. <input type="submit" value="dodaj" />
  23. </form>
  24.  
  25. <?php
  26. // odbieramy dane z formularza
  27. $tytul = $_POST['tytul'];
  28. $opismax = $_POST['opismax'];
  29. echo $tytul;
  30. echo $opismax;
  31. if($tytul and $opismax) {
  32. // dodajemy rekord do bazy
  33. $ins = mysqli_query($db,"UPDATE `publications` SET opismax='$opismax' WHERE tytul='$tytul' ");
  34.  
  35. if($ins) echo "Rekord został dodany poprawnie";
  36. else echo "Błąd nie udało się dodać nowego rekordu";
  37.  
  38. }
  39. ?>
  40. </body>
  41. </html>
Go to the top of the page
+Quote Post
Daiquiri
post 21.01.2011, 16:40:23
Post #7





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Możesz to zrobić w najprostszy sposób:
1. Zrobić (tak jak przy dodawaniu) listę tematów
2. Zrobić butona "edytuj".
3. Postawić warunek np. if(isset($_POST['edytuj']) a w środku
- pobrać dane z bazy dotyczące wybranego tematu (szukasz po ID, lub po tytule jeżeli jest unikalny)
- pobrane dane umieścić w wybranym miejscu nowego formularza,
np. jeżeli dane, które pobrałeś z bazy i chcesz edytować nazywają się $opismax to <textarea name ="opismax"><?php echo $opismax; ?></textarea>
- dodać butona, np. "dokonajZmian"
- jeżeli wciśnięto przycisk i dane są poprawne wykonaj UPDATE w bazie


A teraz w czym KONKRETNIE masz problem? smile.gif
Go to the top of the page
+Quote Post
Michał90
post 21.01.2011, 16:42:37
Post #8





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Cytat(Daiquiri @ 21.01.2011, 16:40:23 ) *
A teraz w czym KONKRETNIE masz problem? smile.gif


Z napisaniem tego winksmiley.jpg
Go to the top of the page
+Quote Post
Daiquiri
post 21.01.2011, 16:52:56
Post #9





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




OK, zdecyduj zatem: szukasz kogoś kto zrobi to za Ciebie czy sam próbujesz napisać? Jeżeli to pierwsze to wątek powinien znaleźć się w zupełnie innym dziale. Jeżeli to drugie - zacznij pisać powoli od początku - możesz wg kroków, które dostałeś wyżej. Zwłaszcza, że spory kawałek Twojego kodu dodawania możesz wykorzystać przy edycji. Odezwij się jak będziesz miał KONKRETNY, powtarzam KONKRETNY problem (a nie ogólny "nie wiem jak to napisać").

Go to the top of the page
+Quote Post
ciekawskiii
post 22.01.2011, 01:45:42
Post #10





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Poradziles sobie z dodawaniem a z edycja juz nie? To napewno Twoj skrypt?


--------------------
Go to the top of the page
+Quote Post
Michał90
post 22.01.2011, 10:48:23
Post #11





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Sam go pisałem, a że jestem noobkiem w php to od razu nie musisz mnie posądzać o to, że to nie mój skrypt... żal..
Go to the top of the page
+Quote Post
ciekawskiii
post 22.01.2011, 10:53:53
Post #12





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Nie posadzam a pytam, wiesz jaka jest roznica miedzy pytaniem a stwierdzeniem? Dzieci w przedszkolu juz to wiedza

Ten post edytował ciekawskiii 22.01.2011, 10:54:29


--------------------
Go to the top of the page
+Quote Post
Daiquiri
post 22.01.2011, 11:27:42
Post #13





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Skoro go pisałeś, to mam wrażenie że go nie rozumiesz. Nie wiem czy wiesz, ale zasadniczo pytałeś o to jak dopisać dwie czy trzy linijki do kodu który już masz. Zauważ, że on już jest UPDATEm.

Tak na marginesie Pana Michała90 proszę o zachowanie "żalu" dla siebie. Myślę, że ciekawskiii nie miał niczego złego na myśli - wręcz przeciwnie.
Go to the top of the page
+Quote Post
mieszkos
post 22.01.2011, 19:07:03
Post #14





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


pomiędzy <textarea> robisz pętle w której wyciągasz dane konkretnie wybranego rekordu czyli zapytanie ma być mniej więcej takie: select * form bla where np. nazwa = '$tytul' ofc $tytul to $_POST i tyle a potem po naciśnięciu przycisku Zapisz - > robisz UPDATE. tyle
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 - 06:04