Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Wstawianie tekstu z textarea do bazy
Forum PHP.pl > Forum > Przedszkole
AddoN
Witajcie,

mam problem ze zrobieniem formularza, którego zadaniem będzie wstawianie tekstu z pola tekstowego do określonego rekordu bazy.

Do wyświetlenia rekordu UserTresc używam kodu
Sortowanie po $id ponieważ każdy użytkownik ma w bazie swój rekord UserTresc

  1. $id = $_SESSION['imie'];
  2. $go = mysql_query("SELECT UserTresc FROM serwis_users WHERE imie = '$id'");
  3. $row = mysql_fetch_array($go);


No i tutaj zaczynają się schody. Bo chciałbym żeby w textarea wyświetlała się obecna zawartość UserTresc, żeby można ją było zmodyfikować i z powrotem zapisać do bazy

  1. <textarea name=UserTresc><? echo $row['UserTresc']; ?></textarea>
  2. <input type="submit" name="submit" value="Wyślij">


Mógłby ktos pomóc?
nospor
Mówisz o ID a porównujesz z IMIE. Jesteś pewien że tak ma być?

ps: zanim napiszesz kolejnego posta zastosuj się do:
Temat: Jak poprawnie zada pytanie
AddoN
Cytat(nospor @ 22.11.2012, 08:09:16 ) *
Mówisz o ID a porównujesz z IMIE. Jesteś pewien że tak ma być?
[/url]


Tak, id to tylko nazwa, całość wygląda tak i działa, ponieważ w tym przypadku pobierane są z bazy rekordy imie, nazwisko, a nie id.

  1. $id = $_SESSION['imie'];
  2. $id2 = $_SESSION['nazwisko'];
  3. $go = mysql_query("SELECT UserTresc FROM serwis_users WHERE imie = '$id'");
  4. $row = mysql_fetch_array($go);
  5. echo $row['UserTresc'];

nospor
No dobra, to z czym masz problem bo już nie wiem.
AddoN
Wszystko napisałem w pierwszym poście.
nospor
No to widziałem. ALe nadal nie wiem jaki masz problem.

Czy o to:
<textarea name=UserTresc><? echo $row['UserTresc']; ?></textarea>
ci nie działa? Nie masz w textarea zawartosci z bazy? No chyba masz, skoro przed chwilą napisałes, ze zawartosc ci sie pobiera poprawnie
AddoN
Pobierać do formularza się pobiera, chodzi mi, aby z textarea można było zapisać jakiś tekst do komórki UserTresc.
nospor
No dobra, i pytam się ponownie: w czym problem?
Formualarza nie umiesz wysłać?
Nie umiesz odebrać w php danych z forma?
Czy nie umiesz wykonac zapytania sql UPDATE, które zmodyfikuje komórkę na podstawie danych odebranych z forma?
AddoN
Z formularzem sobie poradzę. Chciałem prosić o pomoc w napisaniu odpowiednich formułek php i sql które będą wstawiać tekst zapisany w tekstarea do bazy bo naciśnięciu przycisku submit.

nospor
  1. $sql = "update tabela set pole='".mysql_escape_string($_POST['pole_z_forma'])."' where poleinne='jakaswartosc'";
AddoN
Dzięki, tylko że teraz wyskakuje błąd z bazą

  1. $id = $_SESSION['imie'];
  2. $id2 = $_SESSION['nazwisko'];
  3. $go = mysql_query("SELECT UserTresc FROM serwis_users WHERE imie = '$id'");
  4. $row = mysql_fetch_array($go);
  5.  
  6. $sql = "update serwis_users set imie = '$id'".mysql_escape_string($_POST['wiadomosc'])."' where poleinne='jakaswartosc'";
  7.  
  8.  
  9. echo '<form action="wiadomosc">';
  10. echo '<textarea name="wiadomosc"></textarea>';
  11. echo '<input type="submit" name="wiadomosc" value=" zapisz zmiany " />';
  12. echo '</form>';


Co trzeba wpisać w tym where poleinne='jakaswartosc'"?
Shido
  1. $sql = "update tabela set pole='".mysql_escape_string($_POST['wiadomosc'])."' where poleinne='jakaswartosc'";


To powinieneś jeszcze objąć jakimś if'em który sprawdzi czy formularz został wysłany, bo tak co odświeżenie to ci wysyła pustą zmienna do bazy.
Chociażby:
  1. if(isset($_POST['wiadomosc']))
  2. {
  3. $sql = "update tabela set pole='".mysql_escape_string($_POST['wiadomosc'])."' where poleinne='jakaswartosc'";
  4. }
nospor
No nawet prostych wartosci nie można samemu podstawić...wszystko trzeba z forum brac...
  1. $sql = "update serwis_users set UserTresc='".mysql_escape_string($_POST['wiadomosc'])."' where imie = '$id'";

plus to co napisał shido
AddoN
Dziękuję, dziękuję.
Proszę jeszcze o 5g cierpliwości

  1. echo '<form action="wiadomosc">';
  2. echo '<textarea style="width: 100%; height: 250px;" name="wiadomosc">';
  3. echo $row['UserTresc'];
  4. echo '</textarea>';
  5. echo '<input type="submit" name="sql" value=" zapisz zmiany " />';
  6. echo '</form>';


Przycisk wywala błąd

Not Found

The requested URL /edytormg/wiadomosc was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

nospor
action="wiadomosc"
Po co to wstawiłeś? Co to niby ma robić? Wywal to.
AddoN
teraz przenosi do strony głównej, ale do bazy zmiany nie są zapisywane. Nadal jest wcześniejsza zawartość UserTresc.

Akcja przycisku

  1. $zapis = fwrite('wiadomosc');


w formularzu
  1. echo '<input type="submit" name="zapis" value=" zapisz zmiany " />';

nospor
No ale na stronie głównej masz ten kod czy gdzie?
AddoN
Nie, to jest modyfikacja w panelu admina jednego CMS. Te zmiany są w pliku users.php który obsługuje kilka stron;
strona główna panelu to index.php
nospor
Jeśli z FORM wywalasz ACTION to formularz leci tam gdzie był. Więc jeśli poleciał ci na stronę główną, znaczy że wcześniej też byłeś na stronie głównej. No chyba że ty wcześniej do tej strony przeszedłej jakoś postami.

Jeśli więc form nie przekierowuje cię tam gdzie chcesz, to musisz w FORM ustawić ACTION. Ale to ma być pełny adres do strony a nie jak ostatnio "wiadomosc"
AddoN
Już mniejsza z przekierowaniem, bo bez tego da sie żyć. Przycisk nie wywołuje akcji która wstawi tekst z textarea do bazy. Cały czas jest pobierana stara zawartość
nospor
Cytat
Już mniejsza z przekierowaniem, bo bez tego da sie żyć
No ale jak cię przenosi nie tam gdzie masz akcję UPDATE to niby jakim cudem ma ci sie coś zmienic?
AddoN
edytormg/index.php?id=6&user=1

gdzie 1 to id użytkownika któremu edytuje się wiadomość.
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.