Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]edytowanie/aktualizacja/dodawanie rekordu
Forum PHP.pl > Forum > Przedszkole
Michał90
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
Daiquiri
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.
Michał90
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.
PanGuzol
  1. <textarea>Aktualna treśc</textarea>
Daiquiri
Pokaż zatem swój kod. Pisać za Ciebie nie będziemy.
Michał90
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>
Daiquiri
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
Michał90
Cytat(Daiquiri @ 21.01.2011, 16:40:23 ) *
A teraz w czym KONKRETNIE masz problem? smile.gif


Z napisaniem tego winksmiley.jpg
Daiquiri
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ć").

ciekawskiii
Poradziles sobie z dodawaniem a z edycja juz nie? To napewno Twoj skrypt?
Michał90
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..
ciekawskiii
Nie posadzam a pytam, wiesz jaka jest roznica miedzy pytaniem a stwierdzeniem? Dzieci w przedszkolu juz to wiedza
Daiquiri
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.
mieszkos
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.