Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Edycja rekordu w bazie danych
Forum PHP.pl > Forum > Przedszkole
berti28
Witam wszystkich

Mam taki problem mam bazę danych a w niej rekord o nazwie "wymarzony" zawartość tego rekordu pojawia się na stronie www, użytkownik ma swój panel administracyjny.
Chciałbym aby była możliwość żeby użytkownik w tym formularzu na swoim panelu administracyjnym:
  1. <form action="zmien.php" method="post">
  2. <dt>Opisz swój dom marzeń:</dt>
  3. <dt><textarea cols="30" rows="8" name="wymarzony"></textarea></dt>
  4. <input type="submit" value="zmień" />

Mógł zmienić zawartość rekordu wymarzony a zmiana pojawiłaby się na stronie www. Możecie mnie poinstruować? Szukałem w necie informacji ale nic nie znalazłem.
Z góry dziękuje za pomoc.
pozdrawiam
viking
A z czym jest konkretnie problem? Skoro pobierasz dane to tak samo tylko inne zapytanie.
Niree
Tak jak powiedział @viking.

Skoro pobierasz konkretny rekord i wyświetlasz go na stronie, to potem w tym zmień.php dajesz mysql UDPATE ... WHERE id = '$wczesniejpobranazmienna['id']'
berti28
Ze strony gra.php wypełniony jest formularz i wysyłany do pliku zmien.php

W pliku zmien.php pisze taki skrypt:
  1. <?php
  2. // łączymy się z bazą danych
  3. $connection = @mysql_connect('localhost', 'root', '')
  4. or die('Brak połączenia z serwerem MySQL');
  5. $db = @mysql_select_db('test', $connection)
  6. or die('Nie mogę połączyć się z bazą danych');
  7. $wymarzony = $_Post['wymarzony'];
  8. $query="update mieszkanko set WHERE id='$wymarzony['id']";
  9.  
  10. ?>

No i niestety błąd się pojawia. Jak to być mogło ładniej zrobione? Żeby użytkownik w pliku gra mógł zmienić dane?
kapslokk
  1. $wymarzony = $_Post['wymarzony'];
  2. $query="update mieszkanko set WHERE id='$wymarzony['id']";

$_POST raczej, a nie $_Post. Wielkosc liter ma znaczenie.

Sprawdz sobie skladnie update... Po SET musisz wypisac jakie pola chcesz zaktualizowac i jakie wartosci im przypisac.
Poza tym w $wymarzony masz string ktory wpiszesz w <dt><textarea cols="30" rows="8" name="wymarzony"></textarea></dt> a nie tablice, wiec czemu chcesz sie odwolywac do ['id'] ?
berti28
Powiem jeszcze raz o tym temacie "Chce żeby w bazie danych zmieniono wpis w rekordzie "wymarzony" jest tam napisany opis domu, chce żeby użytkownik za pomocą tego formularza w pliku gra.php:
  1. <form action="zmien.php" method="post">
  2. <dt>Opisz swój dom marzeń:</dt>
  3. <dt><textarea cols="30" rows="8" name="wymarzony"></textarea></dt>
  4. <input type="submit" value="zmien" />
  5.  
  6. Zmienić opis w bazie w pliku zmien.php jest taki skrypt:
  7. <?php
  8. // łączymy się z bazą danych
  9. $connection = @mysql_connect('localhost', 'root', '')
  10. or die('Brak połączenia z serwerem MySQL');
  11. $db = @mysql_select_db('test', $connection)
  12. or die('Nie mogę połączyć się z bazą danych');
  13. $wymarzony = $_post['wymarzony'];
  14. $query="update mieszkanko set WHERE id='$wymarzony'['id']";
  15.  
  16. ?>

Jak zrobić żeby zmieniono wpis i wyświetlił się komunikat np. zmieniono wpis. Powiem szczerze raczkuje w tym temacie, będę bardzo a to bardzo wdzięczny za pomoc.
nospor
To ze jestes poczatkujacy w temacie nie zwalnia cie w zaden sposob od czytania co inni pisza
kapslokk podal ci co robisz zle a ty poraz kolejny wklejasz kod ktory nie uwzglednia jego uwag.

ps: I zacznij w koncu uzywac BBCODE
Niree
Podaj przykładowy rekord, który masz w bazie.
arturpiotrowski
W twoim zapytaniu $query nie przypisałeś co chcesz aktualizować... znaczy jakie pola...
poza tym

w twoim kodzie do zmiennej $wymarzony próbujesz przypisać tylko wartość z pola textarea formularza
jak rozumiem id updejtowanego rekordu bierzesz z paska adresu poprzez $_GET['id'] ?
Kod
...

$id = $_GET['id'];
$wymarzony = $_POST['wymarzony'];
$query="update mieszkanko set pole_w_tabeli=$wymarzony WHERE id=$id"

'pole_w_tabeli' zmień na nazwę swojego pola w tabeli, to jest to pole które ma zmieniać wartość na tą z formularza
berti28
Prawie opanowałem mianowicie jak mam taki kod:
$wymarzony=$_POST['wymarzony'];
$artur = 'UPDATE mieszkanko SET wymarzony="'.$wymarzony.'"';

$ok = mysql_query($artur);
if ($ok == true) {
echo"Dane zmienione";
}
?>

To zmienia mi wpis w polu "wymarzony" u wszystkich użytkowników bazy danych ale ja chce tylko tak że użytkownik na swoim profilu może zmienić swoje pole za pomocą formularza i tylko jego wpis na jego polu będzie się wyświetlał a nie u wszystkich użytkowników.
Jak to zrobić?
Kshyhoo
Wątek zamykam do czasu, aż Waść nauczy się używania bb-code, czego nie czyni mimo ciągłego upominania...

PS. poproszę PW.
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.